【问题标题】:Cannot extract multiple scss files to one css file无法将多个 scss 文件提取到一个 css 文件中
【发布时间】:2017-09-24 12:09:29
【问题描述】:

似乎我不知道如何将多个 .scss 文件提取到一个 .css 文件中。构建我的 /dist 文件夹后,仅包含 .js 文件。我遵循了许多指南,但没有一个有效。这是我的 webpack.config.js

module.exports = {
    entry: {
        index: ["./src/app/index.ts"],
        background: ["./src/background/background.ts"]
    },
    watch: true,
    watchOptions: {
        aggregateTimeout: 300,
        ignored: /node_modules/
    },
    output: {
        filename: "[name].js",
        path: path.resolve(__dirname, "dist")
    },
    module: {
        rules: [
            {
                test: /\.ts?$/,
                loader: "awesome-typescript-loader",
                exclude: [/\/node_modules\//]
            }, {
                test: /\.html$/,
                loader: "html-loader"
            }, {
                test: /\.scss$/,
                use: ExtractTextPlugin.extract({
                    fallback: 'style-loader',
                    //resolve-url-loader may be chained before sass-loader if necessary
                    use: ['css-loader', 'sass-loader']
                })
            }
        ]
    },
    plugins: [
        new CopyWebpackPlugin([
            {
                from: "manifest.json",
                to: "./"
            }, {
                from: "./node_modules/jquery/dist/jquery.js",
                to: "./"
            }
        ]),
        new ExtractTextPlugin('style.css'),
        new CleanWebpackPlugin("dist"),
    ],
    resolve: {
        extensions: [".ts", ".js"]
    }
};

@edit 我有最新的模块:

  • webpack:2.4.1
  • sass 加载器:6.0.3
  • extract-text-webpack-plugin: 2.1.0

【问题讨论】:

    标签: webpack css-loader sass-loader extracttextwebpackplugin


    【解决方案1】:

    你会尝试这种方式吗?
    1) 创建包含您需要的所有 scss 导入的 styles.scss:

    2) 创建文件:all-styles.js:

    import style1 from "./styles/styles.scss";

    3) 添加 all-styles.js 作为您的入口点:

    entry: {
        index: ["./src/app/index.ts"],
        background: ["./src/background/background.ts"],
        styles: ["./src/all-styles.js"]
    },

    【讨论】:

    • 谢谢,它有效!但与styles.css 一起,在我的/dist 目录中还创建了一个styles.js 文件。你知道如何删除那个 js 文件吗?
    • webpack 是一个 js-bundler,这也是你拥有 js 文件的方式。在我的项目中,我将所有样式文件命名为 *.style.css 并将 *.style.js 添加到 .gitignore 文件中。所以我的存储库中没有垃圾
    • 哦,好吧,没关系。我刚刚将导入语句添加到我的索引文件中,一切都按预期工作
    最近更新 更多