javascript - [webpack] Bagaimana untuk merujuk pemalam tempatan?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-18 11:01:18
0
2
688

Saya mempunyai pemalam js yang tidak tersedia pada npm. Bagaimanakah saya boleh membungkusnya secara global?

var webpack = require('webpack');
var path = require('path');
module.exports = {
  entry: {
      main:'./app/index.js'
  },
  output: {
    filename: '[name].js',,
    path:path.resolve(__dirname, 'dist')
  },
  resolve:{
      modules:[
          path.resolve(__dirname, "app"),
          "node_modules"
      ]
  }
}

Gunakan require terus dalam index.js untuk memperkenalkan ralat dan melaporkan bahawa ia tidak dapat ditemui;

Kemudian saya menggunakan CommonsChunkPlugin untuk membungkusnya sebagai vendor tetapi ia masih tidak berfungsi;

var webpack = require('webpack');
var path = require('path');
var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
  entry: {
      main:'./app/index.js',
      vendor: ['lib/easeljs/easeljs-0.8.2.min.js','lib/preloadjs/preloadjs-0.6.2.min.js','lib/tweenjs/tweenjs-0.6.2.min.js']
  },
  output: {
    filename: '[name].js',
    path:path.resolve(__dirname, 'dist')
  },
  resolve:{
      modules:[
          path.resolve(__dirname, "app"),
          "node_modules"
      ]
  },
  plugins: [
      new webpack.optimize.CommonsChunkPlugin({
          name: 'vendor'
      }),
      new HtmlWebpackPlugin({
        filename: 'index.html',
        template: './app/index.html'
    })
  ]
}

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(2)
phpcn_u1582

Saya mencari dalam talian untuk perpustakaan yang anda sebutkan https://github.com/CreateJS/E...
Ayat pertama ialah this.createjs = this.createjs||{}; /code>Jelas sekali ini dalam modul bukan tetingkap, jadi ralat akan berlaku this.createjs = this.createjs||{};显然模块中的this不是window,所以会出错
所以要使用imports-loader来打包,在index中import createjs from 'imports-loader?this=>window!createjs';Jadi gunakan import-loader untuk pakej, dalam indeks import createjs dari 'imports-loader?this=>window!createjs ' ;, supaya instance createjs boleh diperolehi, tetapi masih terdapat masalah pada masa ini, kerana webpack tidak dapat mencari easeljs dalam laluan yang ditetapkan, jadi alias diperlukan:

resolve: {
    alias: {
         easeljs: path.join(__dirname,'这里确保路径能对应') + '/app/lib/easeljs-0.8.2.combined.js'
    }
}

Kemas kini: Terdapat juga penyelesaian yang berkaitan dalam isu ini, yang turut menggunakan import-loader Pengarang boleh merujuk kepada https://github.com/CreateJS/E...

.
给我你的怀抱

index.js

import createjs from 'imports-loader?this=>window!easeljs';

webpack.config.js

  resolve:{
      alias: {
         easeljs: path.join(__dirname,'./app/lib/easeljs/easeljs-0.8.2.min.js')
    }
  },

Masalah gambar di atas munculcreatejs 变成了 __WEBPACK_IMPORTED_MODULE_0_imports_loader_this_window_easeljs___default.a

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan