中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

webpack同時輸出壓縮和未壓縮的文件的實現方法

發布時間:2020-07-18 14:17:06 來源:億速云 閱讀:265 作者:小豬 欄目:web開發

這篇文章主要講解了webpack同時輸出壓縮和未壓縮的文件的實現方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

有的時候我們想要同時生成壓縮和未壓縮的文件,比如我們構建 lib 包的時候,我們希望用戶能夠使用壓縮過后的代碼文件作為 cdn 文件,最簡單的一個方式就是通過指定環境變量,比如指定 MINIFY,如下:

const path = require('path')

const isMinify = process.env.MINIFY

/**
 * @type {import('webpack').Configuration}
 */
const config = {
 entry: {

  index: './src/index.js'
 },
 output: {
  filename: isMinify ? '[name].min.js' : '[name].js',
  path: path.join(__dirname, 'dist')
 },
 devtool: 'cheap-source-map',
 optimization: {
  minimize: isMinify ? true : false
 }
}

module.exports = config

我們在使用的時候通過指定環境變量就可以打包成不同的版本:

 "scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "build:min": "MINIFY=1 webpack --config=webpack.config.js",
  "build": "webpack --config=webpack.config.js"
 }

不過這樣的缺點就是我們需要運行兩次。

第二個方法是安裝unminified-webpack-plugin,通過這個插件可以生成沒有壓縮的文件:

const path = require('path')
const UnminifiedWebpackPlugin = require('unminified-webpack-plugin');

/**
 * @type {import('webpack').Configuration}
 */
const config = {
 entry: {
  index: './src/index.js',
 },
 output: {
  filename: '[name].min.js',
  path: path.join(__dirname, 'dist')
 },
 devtool: 'cheap-source-map',
 plugins: [
  new UnminifiedWebpackPlugin({})
 ]
}

module.exports = config

不過這個有個缺點就是未壓縮的文件沒有 sourcemap。

第三種方法通過指定多個打包入口,然后手動指定壓縮插件(uglifyjs、terser等)壓縮哪些文件,如我們指定 index.min.js 這個文件才需要壓縮,配置如下:

const path = require('path')
const TerserWebpackPlugin = require('terser-webpack-plugin');

/**
 * @type {import('webpack').Configuration}
 */
const config = {
 entry: {
  index: './src/index.js',
  'index.min': './src/index.js'
 },
 output: {
  filename: '[name].js',
  path: path.join(__dirname, 'dist')
 },
 devtool: 'cheap-source-map',
 optimization: {
  minimize: true,
  minimizer: [
   new TerserWebpackPlugin({
    include: /min/,
    sourceMap: true
   })
  ]
 }
}

module.exports = config

關鍵點如下:

webpack同時輸出壓縮和未壓縮的文件的實現方法

這個時候生成的就完美了。

看完上述內容,是不是對webpack同時輸出壓縮和未壓縮的文件的實現方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

错那县| 浦江县| 清涧县| 西平县| 湟源县| 宁夏| 东宁县| 奈曼旗| 铁力市| 拜泉县| 灵寿县| 徐闻县| 和林格尔县| 甘肃省| 舟曲县| 和龙市| 治多县| 通河县| 溆浦县| 易门县| 颍上县| 汝州市| 金塔县| 米泉市| 隆子县| 久治县| 吉木萨尔县| 阳春市| 广宁县| 琼海市| 乐昌市| 宜春市| 涟水县| 乌拉特前旗| 永丰县| 阿拉善左旗| 宁城县| 塘沽区| 韩城市| 兴宁市| 阜平县|