webpack單獨打包一個less文件

須要將btn.less文件用webpack打包後,放到項目中。在網上百度了各類,遇到了不少問題,如今我將整個步驟整理以下:javascript

一、建一個空的文件夾,命名爲init_webpack,在該文件夾下運行:
這裏須要注意,安裝的是3.xx版本的webpack,安裝4以上版本會跟extract-text-webpack-plugin插件有衝突css

//全局安裝webpack
npm install  -g  webpack@3
//在你的項目目錄下安裝
npm install --save-dev webpack@3

二、建立package.json文件,在該文件夾下運行:java

npm init

三、在init_webpack文件夾下建一個src文件夾,裏面建一個main.js做爲入口文件,將須要打包的btn.less也放入該文件夾下,如圖所示
webpack

main.jsweb

import './btn.less';

我用的webstorm,這裏須要設置下javascript的版本,如圖:
npm

四、在init_webpack文件夾下建建一個webpack.config.js文件json

webpack.config.jsless

const ExtractTextPlugin = require("extract-text-webpack-plugin");
const path = require('path');
module.exports = {
  entry: './src/main.js',   
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'index.js'
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ExtractTextPlugin.extract({
          use: ['css-loader'],
        }),
      },
      {
        test: /\.less$/,
        use: ExtractTextPlugin.extract({
          use: [
            {
              loader: 'css-loader',
              options: {
                minimize: true
              }
            },
            "less-loader"
          ]
        })
      },
    ]
  },
  plugins: [
    new ExtractTextPlugin("btn.css")
  ]
};

這裏須要安裝幾個插件
extract-text-webpack-plugin、css-loader、less、less-loader
webstorm

五、運行webpack打包,dist文件夾中的btn.css就是打包後的文件
ui

六、若是要壓縮btn.css文件
安裝插件:
npm install --save-dev optimize-css-assets-webpack-plugin@3

在webpack.config.js文件中加入以下代碼:

var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');

如下這段加在plugins中:

new OptimizeCssAssetsPlugin({
      assetNameRegExp: /\.css$/g,
      cssProcessor: require('cssnano'),
      cssProcessorOptions: { safe: true, discardComments: { removeAll: true } },
      canPrint: true
 })

七、這是全部安裝的插件以及版本,由於插件版本出現不少次問題,因此須要注意一下

相關文章
相關標籤/搜索