繁体   English   中英

如何将CSS文件从源文件夹捆绑和复制到dist文件夹?

[英]How to bundle and copy CSS files from source folder to dist folder?

这是我的文件夹结构:

在此处输入图片说明

我想缩小并捆绑src/css文件夹中的src/css文件,并将其作为dist的单个CSS文件输出。 所有我见过的例子至今建议require -ing一个JS文件中的CSS文件。 我不要那个。 有没有一种方法可以在webpack.config.js配置为仅缩小和复制这些文件?

得到它的工作。

安装开发依赖

npm i extract-text-webpack-plugin --save-dev
npm i css-loader --save-dev

webpack.config.js

const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const extractCSS = new ExtractTextPlugin('bundle.min.css')

module.exports = {
  entry: {
    'bundle.min.css': [
      __dirname + '/src/styles/abc.css',
      __dirname + '/src/styles/xyz.css',
      __dirname + '/src/styles/mno.css'
    ]
  },
  devtool: '',
  output: {
    path: __dirname + '/dist/styles/',
    filename: '[name]'

  },
  module: {
    rules: [{
        test: /\.css$/i,
        use: extractCSS.extract({
          use: {
            loader: 'css-loader',
            options: {
              minimize: true
            }
          }
        })
    }]
  },
  resolve: {
    alias: {},
    modules: [],
    extensions: ['.css']
  },
  plugins: [
    extractCSS
  ]
};

bundle.min.css将生成。 基于minimize: true/false ,将确定minimize: true/false 请享用!

它将分三步进行;

首先,您将需要两个加载器和插件; 分别命名为css-loaderstyle-loaderextract-text-webpack-plugin

然后您的配置可能如下所示:

const webpack = require('webpack');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const path = require('path');
module.exports = {
  entry: {
    app: './src/index.js'
  },
  output: {
    path: 'dist',
    filename: 'js/[name]-bundle.js'
  },
  devtool: "cheap-source-map",
  resolveLoader: {
    modules: [
      'node_modules',
      path.join(__dirname, '../node_modules'),
    ]
  },
  module: {
    loaders: [
      {
        test: /.css?$/,
        loader: ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' }),
        exclude: /node_modules/
      }
    ]
  },
  plugins: [
    new ExtractTextPlugin("css/[name].css"),
    new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false,
        screw_ie8: true,
        conditionals: true,
        unused: true,
        comparisons: true,
        sequences: true,
        dead_code: true,
        evaluate: true,
        join_vars: true,
        if_return: true
      },
      output: {
        comments: false
      }
    }),
  ]
}

然后在您的条目文件中,要求它们像require('./style.css');

请记住,它将按照路径作为您的来源。

如果要在CSS中加载字体文件和图像,则可能还需要file-loader插件,该插件将复制目录中的所有资产。

文件加载器配置如下所示:

{
    test: /.png?$/,
    loader: 'file-loader?name=img/[name].[ext]',
    exclude: /node_modules/
}

UgligyJsPlugin也将缩小CSS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM