我正在将 webpack 和 css-loader 与 React 应用程序一起使用,该应用程序在我编写它的原始目录中的 webpack 开发服务器上运行良好。但是,在推送到 git 并克隆存储库后,克隆版本不会加载 css(详细信息如下)。
除了 webpack.config.js、package.json、package-lock.json 之外,还有其他地方可以配置 webpack loader 吗?或者,关于为什么应用程序副本中的行为会有所不同的任何想法?我在没有 .gitignore 的情况下尝试了此操作,以确保我没有剥离任何内容,因此所有文件都应该相同。
编辑:现在在开发服务器上运行副本后,原始文件也不起作用,所以我正在寻找缓存的东西。
更多细节:
克隆后我发现我使用了错误的加载程序语法,因为 webpack.config.js 现在需要'-loader'。出于某种原因,它在原始副本中有效,但两个实例都在 webpack 3.8.1 和 css-loader 0.28.7 上。(因为 package.json、package-lock.json 和 /node_modules 都在 git 中,所以一切都应该是相同的版本 - 对吧?)
这适用于我的原始存储库:
webpack.config.js:
(...)
{
test: /\.css$/,
loader: 'css?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]'
},
但在克隆目录中导致此错误:
BREAKING CHANGE: It's no longer allowed to omit the '-loader' suffix when using loaders.
You need to specify 'css-loader' instead of 'css',
see https://webpack.js.org/guides/migrating/#automatic-loader-module-name-extension-removed
@ ./app/components/GroupTable.js 3:0-37
@ ./app/components/MainView.js
@ ./app/components/App.js
@ ./app/index.js
@ multi (webpack)-dev-server/client?http://localhost:8081 ./app/index.js
所以我将其更新为:
webpack.config.js
(...)
{
test: /\.css$/,
loader: 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]'
},
当我添加 '-loader' webpack.config.js 时,css 不会像以前那样加载。webpack.config 中没有其他测试对 .css 文件评估为 true。
我知道的配置文件(webpack.config.js、package.json、package-lock.json)在两个副本之间是相同的,所以我试图找出还有什么可能导致行为差异。
如果有人发现这个问题,看起来上面列出的文件之外没有配置。我相信问题在于我在对 css 加载器进行更改后没有从 webpack 重建,所以没有意识到我已经破坏了它。我在 git 的副本中运行了 build,所以它使用了收到的配置,它被破坏了。
这解决了是否有隐藏配置的问题,似乎没有。我仍然不确定为什么这个加载器不起作用:
loader: 'css?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]'
但与此同时,这样做:
{
test: /\.css$/,
loader: "style-loader!css-loader"
},
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句