2017-08-08 818 views
1

我想从我的包中删除angular.js。无法找到一种方法将其从bundle.js中删除,因为Webpack以某种方式从我的入口文件中解析它。所以我决定使用webpack.IgnorePlugin但结果我收到错误。使用IgnorePlugin的Webpack生成webpackMissingModule错误

不能webpackMissingModule

找到模块 “角” 我已经包括了来自CDN角JS bundle.js被加载之前。但它仍然试图从webpack脚本解决它。

webpack.make.js

module.exports = function makeWebpackConfig(options) { 
    var config = {}; 
    config.entry = { 
     app: './app/app.js' 
    } 
    config.output = { 
     path: __dirname + '/public', 
     publicPath: BUILD ? '/' : 'http://localhost:8080/', 
     filename: 'bundle.js', 
     chunkFilename: 'bundle.js', 
    } 
    ... 
    config.module = { 
     loaders: [{ 
      test: /\.js$/, 
      loader: 'babel-loader', 
      exclude: /node_modules/ 
     }, { 
      test: /\.html$/, 
      loader: 'raw' 
     }] 
    }; 
    config.plugins = [ 
     new webpack.IgnorePlugin(/angular$/), 
    ]; 
    ... 
    return config; 
}; 

回答

1

如果您在您的应用程序采用了棱角分明,但不希望的WebPack包含它,因为它会从别的地方,你可以将它作为一个外部库webpack将不会加载它。

这是一个顶层数组配置,用于指定要在包中忽略的库。

module.exports = { 
    externals: ['angular'] 
} 

然后,您可能会摆脱ignore插件,而不必处理配置的额外部分。