我正在使用带有React应用程序的webpack和css-loader,它在我编写它的原始目录中的webpack dev服务器上正常运行。但是,在推送到git并克隆存储库后,克隆版本不会加载css(详情如下)。
除了webpack.config.js,package.json,package-lock.json之外,是否还可以配置webpack加载器?或者,关于为什么行为在应用程序副本中会有所不同的任何想法?我尝试了这个没有.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)在两个副本之间是相同的,所以我试图找出其他可能导致差异的地方行为。
答案 0 :(得分:0)
如果有人发现此问题,看起来在上面列出的文件之外有不配置。我相信问题是我在更改css加载器之后没有从webpack重建,所以没有意识到我已经破坏了它。我在git的副本中运行了build,所以它使用了收到的配置,它被破坏了。
这解决了是否存在隐藏配置的问题,似乎没有。我仍然不确定为什么这个加载器不起作用:
loader: 'css?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]'
但与此同时:
{
test: /\.css$/,
loader: "style-loader!css-loader"
},