在開發階段, 一般會有兩套方案:為了滿足我們的發布策略, 需要新建乙個配置檔案, 命名為
webpack.publish.config.js
將webpack.config.js
的配置拷貝過去, 剔除一些開發配置即可 ;
devserver
將plugins
節點下的熱更新外掛程式刪除 ;new webpack.hotmodulereplacementplugin()
修改url-loader
, 將放入統一的 images 資料夾下 ;
或者使用img-
字首加上 7位的hash名稱 ;
每次打包自動生成 dist 目錄 刪除老的 dist 目錄npm install clean-webpack-plugin -d
const cleanwebpackplugin = require('clean-webpack-plugin');
plugins: [
// 需要刪除的目錄
new cleanwebpackplugin(['dist'])
]
抽離第三方包思路: bundle.js 只存放自己的** 第三方包的**全部抽離到乙個另外的 js 中
const webpack = require('webpack');
const path = require('path');
module.exports = ,
output: ,
plugins: [
// 例項化建構函式
new webpack.optimize.commonschunkplugin()
]};
壓縮 js **const webpack = require('webpack');
plugins: [
new webpack.optimize.uglifyjsplugin(
}),new webpack.optimize.dedupplugin()
]
壓縮 html **const htmlwebpackplugin = require('html-webpack-plugin');
const path = require('path');
plugins: [
template: path.join(__dirname, 'src/index.html'),
filename: 'index.html',
minify:
]
抽離資料夾npm install extract-text-webpack-plugin -d
cont extracttextplugin = require('extract-text-webpack-plugin');
module.exports = )}},
plugins: [
// 抽取 css 檔案並且命名為 style.css
// 如果前面加了目錄就代表是打包到某個資料夾 '/css/style.css'
new extracttextplugin('style.css')
]}
壓縮 css 檔案
npm install optimize-css-assets-webpack-plugin -d
var optimizecssassetsplugin = require('optimize-css-assets-webpack-plugin');
plugins: [
// 壓縮 css 檔案
new optimizecssassetsplugin()
]
webpack 發布配置
上次寫的是開發配置,這次是發布配置 解析 引用了單獨打包模組 在loaders內配置的css less scss都用到了,這樣它們都解析完後會合併到指定的css檔案內。還有的配置,name images hash 8 name ext 設定了name引數。表示的儲存地 在plugins內有二個配置,...
整理 灰度發布策略
目錄灰度發布是版本公升級平滑過渡的一種方式 也可以增加產品的某些特性 簡而言之,當版本公升級時,使部分使用者使用高版本,其他使用者繼續使用低版本,待高版本穩定後,逐步擴大範圍把所有使用者流量都遷移到高版本上面來。ab test也是一種灰度發布方式,讓一部分使用者繼續用a,一部分使用者開始用b,如果使...
前端開發 webpack 發布環境配置
記錄一下前端開發中webpack的傳統發布環境配置 const require path const minics tractplugin require mini css extract plugin const optimizecssassetswebpackplugin require opt...