2017-08-08 102 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插件,而不必處理配置的額外部分。