Webpack.config之外的Webpack css loader配置?

时间:2017-11-29 21:05:22

标签: git reactjs webpack css-loader

我正在使用带有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)在两个副本之间是相同的,所以我试图找出其他可能导致差异的地方行为。

1 个答案:

答案 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"
},