首页 > 解决方案 > Webpacker 4.2.2 到 5.1.1:不再查找 Element UI 中使用的元素图标

问题描述

我一直在尝试确定执行此更新的更改会导致图标不再正确呈现。我在浏览器中没有收到任何错误,但我看到它不再尝试加载字体文件(以前是 /packs/media/fonts/element-icons-xxx.woff)

manifest.json 包含文件的条目:

"media/fonts/element-icons.woff": "/packs/media/fonts/element-icons-313f7dac.woff",

我比较了生成的 webpack.config.js 并看到很少的变化:

      "sassOptions": {
         "includePaths": []
       }

目前正在通过插件下的 babel.config.js 加载主题:

      [
        "component",
        {
          "libraryName": "element-ui",
          "styleLibraryName": "theme-chalk"
        }
     ]

但我也尝试将它导入到主入口点: import 'element-ui/lib/theme-chalk/index.css'; 结果相同。

我已按照某些帖子中的建议添加了“resolve-url-loader”:

environment.loaders.get('sass').use.splice(-1, 0, {
  loader: 'resolve-url-loader'
});

它将它放在“sass-loader”的正上方:

  {
    "key": "sass",
    "value": {
      "test": {},
      "use": [
        "/Users/tom/LGL_DEV/lgl/node_modules/@rails/webpacker/node_modules/mini-css-extract-plugin/dist/loader.js",
        {
          "loader": "css-loader",
          "options": {
            "sourceMap": true,
            "importLoaders": 2,
            "modules": false
          }
        },
        {
          "loader": "postcss-loader",
          "options": {
            "config": {
              "path": "/Users/tom/LGL_DEV/lgl"
            },
            "sourceMap": true
          }
        },
        {
          "loader": "resolve-url-loader"
        },
        {
          "loader": "sass-loader",
          "options": {
            "sourceMap": true,
            "sassOptions": {
              "includePaths": []
            }
          }
        }
      ],
      "sideEffects": true,
      "exclude": {}
    }
  },

想法?

更新:我已经逐步更新了 webpacker 以查看中断的位置:

  1. 4.2.2:元素图标加载就好了。
  2. 4.3.0:元素图标加载就好了。
  3. 5.0.0:不加载元素图标。
  1. 5.0.1:不加载元素图标。

标签: javascriptruby-on-railsruby-on-rails-5webpackerelement-ui

解决方案


推荐阅读