webpack:错误:resolve-url-loader:错误处理CSS

发布于 2025-02-12 01:40:03 字数 2879 浏览 0 评论 0原文

目标:为了减少SSR汇编时间,我们将Node_modules样式文件的导入从JS文件移到了CSS文件。

示例:

导入'react-multi-email/style.css'; =>从.js文件

@Import'〜React-Multi-Email/style.css'; => 删除。添加到.css文件,

因为这些修改应用程序不再在控制台中启动和显示:

ERROR in ./node_modules/font-awesome/css/font-awesome.min.css (./node_modules/css-loader??ref--5-oneOf-3-1!./node_modules/resolve-url-loader!./node_modules/font-awesome/css/font-awesome.min.css)
Module build failed (from ./node_modules/resolve-url-loader/index.js):
Error: resolve-url-loader: error processing CSS
  a valid source-map is not present (ensure preceding loaders output a source-map)
  at file:/myRootPath/node_modules/font-awesome/css/font-awesome.min.css:4:41
    at encodeError (myRootApp/node_modules/resolve-url-loader/index.js:287:12)
    at onFailure (myRootApp/node_modules/resolve-url-loader/index.js:228:14)
 @ ./src/styles/app.scss (./node_modules/css-loader??ref--5-oneOf-3-1!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-3-3!./node_modules/sass-resources-loader/lib/loader.js??ref--5-oneOf-3-4!./src/styles/app.scss) 5:10-164
 @ ./src/styles/app.scss
 @ ./src/App.tsx
 @ ./src/MainApp.tsx
 @ ./src/index.js
 @ multi ./config/polyfills.js ./node_modules/react-dev-utils/webpackHotDevClient.js ./src/index.js

我们的WebPack Dev配置样式加载程序:

oneOf: [
  {
    test: /\.css$/,
    use: [
      require.resolve('style-loader'),
      {
        loader: require.resolve('css-loader'),
        options: {
          importLoaders: 1,
          sourceMap: true,
        },
      },
      {
        loader: require.resolve('postcss-loader'),
        options: {
          ident: 'postcss',
          sourceMap: true,
        },
      },
    ],
  },
  {
    test: /\.scss$/,
    use: [
      {
        loader: require.resolve('style-loader'),
        options: {
          sourceMap: true,
        },
      },
      {
        loader: require.resolve('css-loader'),
        options: {
          importLoaders: 1,
          sourceMap: true,
          debug: true,
        },
      },
      { loader: 'resolve-url-loader', options: { sourceMap: true, debug: true } },
      {
        loader: 'sass-loader',
        options: {
          sourceMap: true,
        },
      },
      {
        loader: 'sass-resources-loader',
        options: {
          resources: [`${myPath}/app/src/styles/shared/*.scss`],
          sourceMap: true,
        },
      },
    ],
  },
],

相关软件包的版本:

"sass": "^1.52.1",
"sass-loader": "^10.1.1",
"sass-resources-loader": "^2.0.1",
"css-loader": "^0.28.7",
"postcss-loader": "^2.0.8",
"postcss-loader": "^2.0.8",
"webpack": "^4.31.0",
"resolve-url-loader": "^4.0.0",
"style-loader": "^0.23.1",

另外:

  • 我们使用WebPack V4,无法
  • 在此处更新所有Libs,源地图,源地图已启用

Goal: To reduce the SSR compilation time, we have moved the import of node_modules style files from JS files to CSS files.

Example:

import 'react-multi-email/style.css'; => remove from .js file

@import '~react-multi-email/style.css'; => add to .css file

Since those modifications the application no longer launches and displays in the console:

ERROR in ./node_modules/font-awesome/css/font-awesome.min.css (./node_modules/css-loader??ref--5-oneOf-3-1!./node_modules/resolve-url-loader!./node_modules/font-awesome/css/font-awesome.min.css)
Module build failed (from ./node_modules/resolve-url-loader/index.js):
Error: resolve-url-loader: error processing CSS
  a valid source-map is not present (ensure preceding loaders output a source-map)
  at file:/myRootPath/node_modules/font-awesome/css/font-awesome.min.css:4:41
    at encodeError (myRootApp/node_modules/resolve-url-loader/index.js:287:12)
    at onFailure (myRootApp/node_modules/resolve-url-loader/index.js:228:14)
 @ ./src/styles/app.scss (./node_modules/css-loader??ref--5-oneOf-3-1!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-3-3!./node_modules/sass-resources-loader/lib/loader.js??ref--5-oneOf-3-4!./src/styles/app.scss) 5:10-164
 @ ./src/styles/app.scss
 @ ./src/App.tsx
 @ ./src/MainApp.tsx
 @ ./src/index.js
 @ multi ./config/polyfills.js ./node_modules/react-dev-utils/webpackHotDevClient.js ./src/index.js

our webpack dev configuration for style loaders:

oneOf: [
  {
    test: /\.css$/,
    use: [
      require.resolve('style-loader'),
      {
        loader: require.resolve('css-loader'),
        options: {
          importLoaders: 1,
          sourceMap: true,
        },
      },
      {
        loader: require.resolve('postcss-loader'),
        options: {
          ident: 'postcss',
          sourceMap: true,
        },
      },
    ],
  },
  {
    test: /\.scss$/,
    use: [
      {
        loader: require.resolve('style-loader'),
        options: {
          sourceMap: true,
        },
      },
      {
        loader: require.resolve('css-loader'),
        options: {
          importLoaders: 1,
          sourceMap: true,
          debug: true,
        },
      },
      { loader: 'resolve-url-loader', options: { sourceMap: true, debug: true } },
      {
        loader: 'sass-loader',
        options: {
          sourceMap: true,
        },
      },
      {
        loader: 'sass-resources-loader',
        options: {
          resources: [`${myPath}/app/src/styles/shared/*.scss`],
          sourceMap: true,
        },
      },
    ],
  },
],

the versions of the packages concerned:

"sass": "^1.52.1",
"sass-loader": "^10.1.1",
"sass-resources-loader": "^2.0.1",
"css-loader": "^0.28.7",
"postcss-loader": "^2.0.8",
"postcss-loader": "^2.0.8",
"webpack": "^4.31.0",
"resolve-url-loader": "^4.0.0",
"style-loader": "^0.23.1",

Also:

  • we work with Webpack v4 and cannot update all libs
  • here, source maps are enabled

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文