我使用本机文件系统(inotify)支持运行webpack, 还使用chokidar进行了测试,它正确地获取了该文件系统/文件夹上文件的所有更改。
使用Sage 9 WordPress基本主题中的webpack配置(https://github.com/roots/sage/blob/c21df9965ff8217c3b4ff90bbe6099206d7b4fbf/resources/assets/config.json#L16)。 只列出了要监视的PHP文件 - 但是它们的依赖关系(SCSS / JS / ...)也会被监视?
我使用启动webpack的npm / yarn包脚本启动webpack watch
$ webpack --hide-modules --watch --config resources/assets/build/webpack.config.js
Webpack is watching the files… [BS] [HTML Injector] Running... [BS] Proxying: http://dev:8084 [BS] Access URLs: ---------------------------------- Local: http://localhost:3000 External: http://127.0.0.1:3000 ---------------------------------- UI: http://localhost:3001 UI External: http://127.0.0.1:3001 ---------------------------------- [BS] Watching files...
但是,更改文件 - 甚至只是上面监视数组中指定的PHP文件 - 不会触发webpack的任何更新。 什么配置可能会丢失?是否有任何方法可以找出webpack的确切内容 - 以及它是否真的检测到了更改(并且忽略了它)?
答案 0 :(得分:0)
原因是CORS,由于CORS限制,应加载新webpack构建的脚本被浏览器阻止。可以将browserSync配置为为CORS发送正确的标头,另请参阅https://discourse.roots.io/t/sage-9-browsersync-not-loading-any-css-at-all-on-yarn-run-start/11332/26。
new BrowserSyncPlugin({
target,
open: config.open,
proxyUrl: config.proxyUrl,
watch: config.watch,
delay: 500,
advanced: {
browserSync: {
cors: true,
},
},
}),