vue + webpack 構建專案配置檔案小記
阿新 • • 發佈:2019-02-05
var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './src/main.js',
output: {
path: './dist',// 打包後的檔案存放的地方
publicPath: '/dist/',
// filename: '[name].bundle.[chunkhash:8].js'
// 此選項決定了每個輸出 bundle 的名稱。這些 bundle 將寫入到 output.path 選項指定的目錄下。
filename: '[name].bundle.js' // 打包後輸出檔案的檔名
},
module: {
loaders: [{
test: /\.js$/,//一個匹配loaders所處理的檔案的拓展名的正則表示式
loader: 'babel-loader',//loader的名稱
exclude: /node_modules/,//include/exclude手動新增必須處理的檔案(資料夾)或遮蔽不需要處理的檔案(資料夾)
query: {
presets: ['es2015']
}//為loaders提供額外的設定選項,解析Es6的babel-preset-es2015包
}, {
test: /\.css$/,
loader: 'style-loader!css-loader'
//感嘆號的作用在於使同一檔案能夠使用不同型別的loader。
}, {
test: /\.vue$/,
loader: 'vue'
}, {
test: /\.scss$/,
loader: 'style!css!sass?sourceMap'
}
]
},
resolve: {
extensions: ['' , '.js', '.vue', '.css'],
alias: {
'vue$': 'vue/dist/vue.js'
}
},
//HtmlWebpackPlugin會自動幫你生成一個 html 檔案,並且引用相關的 assets 檔案(如 css, bundle.js)。
plugins: [new HtmlWebpackPlugin({
// title: '樂其OMS管理系統',//生成的html文件的標題。配置該項,它並不會替換指定模板檔案中的title元素的內容
template: './index_template.html',//本地模板檔案的位置
filename: '../index.html',
//輸出檔案的檔名稱,預設為index.html,不配置就是該檔名;filename配置的html檔案目錄是相對於webpackConfig.output.path路徑而言的,不是相對於當前專案目錄結構的。
showErrors: true,
//是否將錯誤資訊輸出到html頁面中。這個很有用,在生成html檔案的過程中有錯誤資訊,輸出到頁面就能看到錯誤相關資訊便於除錯。
inject: 'body',
// inject:向template或者templateContent中注入所有靜態資源,不同的配置值注入的位置不經相同。
// 1、true或者body:所有JavaScript資源插入到body元素的底部
// 2、head: 所有JavaScript資源插入到head元素中
// 3、false: 所有靜態資源css和JavaScript都不會注入到模板檔案中
complile: true,
chunks: 'all',
})]
};
webpack 程式碼分割 - 使用 require.ensure
webpack 在編譯時,會靜態地解析程式碼中的require.ensure(),同時將模組新增到一個分開的 chunk 當中。這個新的 chunk 會被 webpack 通過 jsonp 來按需載入。
require.ensure(dependencies: String[], callback: function(require), chunkName: String)
const configTags = r => require.ensure([], () => r(require('./view/goodsManage/configTags')), 'goods')
npm install webpack --save-dev
簡單的寫法:-_-,縮寫形式
npm i webpack -D
–save
:模組名將被新增到dependencies,可以簡化為引數-S。
–save-dev
: 模組名將被新增到devDependencies
,可以簡化為引數-D
。
webpack打包
新建一個entry.js檔案,在終端進入該檔案的目錄,執行webpack entry.js bundle.js
會在同目錄下生成一個bundle.js檔案
執行webpack
webpack
#最基本的啟動webpack命令webpack --display-error-details
#加上後面的引數可以更好定位到問題webpack --config XXX.js
#使用另一份配置檔案webpack -d
#生成map對映檔案,告知哪些模組被最終打包到哪裡了webpack -w
/webpack --watch
#提供watch方法,實時進行打包更新webpack -p
#對打包後的檔案進行壓縮webpack -d
#提供SourceMaps,方便除錯webpack --colors
#輸出結果帶彩色,比如:會用紅色顯示耗時較長的步驟- `webpack –profile“ #輸出效能資料,可以看到每一步的耗時
- webpack –display-modules` #預設情況下 node_modules 下的模組會被隱藏,加上這個引數可以顯示這些被隱藏的模組