簡體   English   中英

當 sass 文件中有 url 時,Webpack 模塊構建失敗

[英]Webpack module build failing when there are url's in the sass file

我在為我的 style.scss 文件構建模塊時遇到問題。 似乎我引用的圖像 URL 導致構建失敗,我不知道為什么。 我認為這可能是由於缺少合適的加載器,所以我安裝了 resolve-url-loader,它沒有任何區別。 我看過許多其他情況,人們經歷過類似的事情,但他們的解決方案都沒有對我有用。

錯誤:

ERROR in ./src/sass/style.scss
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleNotFoundError: Module not found: Error: Can't resolve '../public/fonts/montserrat-v15-latin-600.eot' in 'C:\Users\Kaleshe\Local Sites\soundtruism\app\public\wp-content\themes\soundtruism\src\sass'
    at C:\Users\Kaleshe\Local S

文件結構:

文件結構

webpack.config.js:

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const BrowserSyncPlugin = require('browser-sync-webpack-plugin');

module.exports = {
  context: __dirname,
  entry: {
    frontend: ['./src/index.js', './src/sass/style.scss'],
    customizer: './src/customizer.js'
  },
  output: {
    path: path.resolve(__dirname, 'public'),
    filename: '[name]-bundle.js'
  },
  mode: 'development',
  devtool: 'cheap-eval-source-map',
  module: {
    rules: [
      {
        enforce: 'pre',
        exclude: /node_modules/,
        test: /\.jsx$/,
        loader: 'eslint-loader'
      },
      {
        test: /\.jsx?$/,
        loader: 'babel-loader'
      },
      {
        test: /\.(sass|scss)$/,
        use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-sass-loader', 'resolve-url-loader', 'sass-loader']
      },
      {
        test: /\.svg$/,
        loader: 'svg-sprite-loader',
        options: {
          extract: true,
          spriteFilename: 'svg-defs.svg'
        }
      },
      {
        test: /\.(jpe?g|png|gif)\$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              outputPath: 'images/',
              name: '[name].[ext]'
            }
          },
          'img-loader'
        ]
      }
    ]
  },
  plugins: [
    new MiniCssExtractPlugin({
      filename: '[name].css'
    }),
    new BrowserSyncPlugin({
      open: 'external',
      host: 'soundtruism.local',
      files: '**/*.php',
      proxy: 'soundtruism.local',
    })
  ],
  optimization: {
    minimizer: [new UglifyJsPlugin(), new OptimizeCssAssetsPlugin()]
  }
};

錯誤的路徑您正在引用位於public目錄中的 fonts 文件夾。 其中, sass文件位於src/sass中。 您需要使用../../public訪問public目錄。

第一個../將帶您到src ,下一個../將帶您到/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM