我试图找到一种方法来从我的 Webpack 包中排除特定的 subdepedency 包。我尝试了很多方法,我最近的尝试是(ab)使用外部选项,例如:
externals: [
function externals(context, request, callback) {
if (
context.includes('ui-lib/node_modules/react-dom/') ||
context.includes('ui-lib/node_modules/d3/') ||
context.includes('ui-lib/node_modules/lodash/')
) {
return false;
}
callback();
},
],
如果没有成功,还有其他方法可以实现吗?
我有一个供应商包,看起来像:
我想排除节点module下的重复包,例如 react-dom。
入口
entry: {
app: ['babel-polyfill', path.join(__dirname, './../index.dev.js')],
vendor: ['react', 'react-dom', 'd3'],
},
通用块
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: 'vendorbundle.js',
chunks: ['app'],
minChunks(module) {
return module.context && module.context.includes('node_modules');
},
}),

