css - Webpack 4 : file-loader not loading assets in . css 或 .scss 文件

标签 css webpack webpack-file-loader

我正在尝试移动我的一个 .scss 文件中使用的 Assets (图像和字体),但它们似乎被忽略了:

这是我的 .scss 文件:

@font-face {
    font-family: 'myfont';
    src: url('../../assets/fonts/myfont.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
}

body {
    color: red;
    font-family: 'myfont';
    background: url('../../assets/images/bg.jpg');
}

这是我的 webpack.config.js:

const path = require('path');
const { CheckerPlugin } = require('awesome-typescript-loader');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
    target: 'node',
    entry: path.resolve(__dirname, 'server.tsx'),
    output: {
        filename: 'server_bundle.js',
        path: path.resolve(__dirname, 'build'),
        publicPath: '/build'
    },
    resolve: {
        extensions: ['.ts', '.tsx', '.js', '.jsx']
    },
    module: {
        rules: [{
                test: /\.(tsx|ts)?$/,
                loader: 'awesome-typescript-loader',
                options: {
                    jsx: 'react'
                }
            },
            {
                test: /\.(scss|sass|css)$/,                
                use: [
                    MiniCssExtractPlugin.loader,
                    { loader: 'css-loader', options: { url: false, sourceMap: true } },
                    { loader: 'sass-loader', options: { sourceMap: true } },                    
                ]
            },
            {
                test: /\.(png|svg|jpg|jpeg|gif)$/,
                loader: 'file-loader',
                options: { outputPath: 'public/images' }
            },
            {
                test: /\.(woff|woff2|eot|ttf|otf)$/,
                loader: 'file-loader',
                options: { outputPath: 'public/fonts' }
            }
        ]
    },
    plugins: [
        new CheckerPlugin(),
        new MiniCssExtractPlugin({
            filename: 'public/styles_bundle.css',
            chunkFilename: "public/styles/[id].css"
        })
    ]
}

为什么 Webpack 不处理字体和图像?

最佳答案

在 webpack 4.32.2 中测试了 file-loader 和 url-loader。

file-loader 只加载在 .tsx 文件中导入的文件。 url-loader 不适合我。

最后,我发现的是 copy-webpack-plugin

关于css - Webpack 4 : file-loader not loading assets in . css 或 .scss 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918151/

相关文章:

CSS3 : "note lines" are jumping when text is long

reactjs - react-router v2.0 的 typescript 定义 - 错误 `has no exported member ' browserHistory'`

reactjs - 如何使用文件加载器修复音频文件的 'module not found'?图像、CSS 和 JSON 运行良好

javascript - Django webpack 加载程序 : how to refer to static images compiled by webpack

css - Selenium - 无法定位静态文本的元素

css - GWT 列表框样式

javascript - 嵌入 iframe 不返回响应式设计?

angular - 指示 Angular CLI/Webpack 不要内嵌小于 10Kb 的图像

node.js - 在 Firebase 托管上安装 NPM 依赖项

reactjs - 使用 React、Typescript 和 Webpack 显示静态图像