Javascript 具有多个入口点的Webpack watch()-为未更改的文件发出捆绑包?
在我的Javascript 具有多个入口点的Webpack watch()-为未更改的文件发出捆绑包?,javascript,node.js,webpack,browser-sync,Javascript,Node.js,Webpack,Browser Sync,在我的webpack.config.js中,我有3个单独的入口点,一个用于js捆绑包,一个用于主SCSS捆绑包,另一个用于与主SCSS捆绑包没有关系的单独SCSS捆绑包 当我使用webpack.watch()API时,出于某种原因,编辑JS源文件不仅会导致重新编译JS包,还会导致重新编译2个SCSS包。 这是为什么?我如何停止这种行为并确保只重新编译已编辑的入口点? 这是一个问题的原因,因为我使用的是browsersync,对于CSS包的重新编译,我只是注入CSS而不是重新加载,但是在HTML/
webpack.config.js
中,我有3个单独的入口点,一个用于js捆绑包,一个用于主SCSS捆绑包,另一个用于与主SCSS捆绑包没有关系的单独SCSS捆绑包
当我使用webpack.watch()
API时,出于某种原因,编辑JS源文件不仅会导致重新编译JS包,还会导致重新编译2个SCSS包。这是为什么?我如何停止这种行为并确保只重新编译已编辑的入口点?
这是一个问题的原因,因为我使用的是
browsersync
,对于CSS包的重新编译,我只是注入CSS而不是重新加载,但是在HTML/JS上编辑它的重新加载。但是,如果我编辑SCS,并且它也重新编译JS/HTMLbrowsersync
会触发重新加载而不是CSS注入。在这种情况下,您需要一个文件,让webpack检测每个不同入口点上所做的更改
为此,您可以使用CommonChunkPlugin提供的清单文件:
例如,如果您有以下入口点:
entry: {
app: 'main.js', // main entry point
vendor: ['jquery', 'react'] //Third libraries
}
您可以使用以下插件:
new wepack.optimize.CommonsChunkPlugin({
name: ['vendor', 'manifest']
})
此配置将生成一个清单文件作为另一个输出。在这种情况下,如果您更改了“app”入口点,webpack只会重新编译main.js输出包(根据“output”配置中的“filename”格式),因为供应商包已经相同
您可以使用特定的入口点尝试此操作。确保未禁用。您可以在此处复制/粘贴您的网页配置吗?它仍然是实际的吗?我正在使用
Webpack
+Browsersync
,这样的情况对我来说很好。如果我对这个感兴趣,我可以帮你。。。