GitHub 完整配置文件地址: https://github.com/yhtx1997/webpack4-Instance javascript
因爲篇幅過長分三次發佈,建議按順序看
[ webpack4 ] 配置屬於本身的打包系統教程(一)—— 基礎配置篇
[ webpack4 ] 配置屬於本身的打包系統教程(二)—— 資源配置篇
[ webpack4 ] 配置屬於本身的打包系統教程(最終篇)—— 環境配置篇html
主要內容java
安裝 webpack 前請確保已安裝 nodejs 和 npmnode
npm init -y
這裏的init表示初始化一個 npm 項目, -y 表示所有選 yes,不加的話會提示輸入一些項目信息,好比項目名,版本號,做者...webpack
npm install webpack webpack-cli webpack-dev-server -D
這實際上是一條合併的命令,拆開就是git
npm install webpack -D npm install webpack-cli -D npm install webpack-dev-server -D
現階段的目標是讓它能運行起來
如今目錄下應該有一個文件夾,兩個 .josn 文件es6
官方推薦移除文件中的入口配置,這樣能夠防止意外發布你的代碼。github
"main": "index.js"
並加上私有屬性配置web
"private": true
運行webpack 能夠用在命令行輸入 npx webpack
可是這樣的運行方式在配置了開發環境和生產環境時,再運行須要寫不少參數
因此添加一個 npm 腳本,以後運行 輸入 npm run test 便可,有參數後在後邊追加便可算法
"test": "webpack"
最後看起來像這樣
在 webpack 4 中,能夠無須任何配置使用,作完上邊的操做後能夠在命令行輸入 npm run test 運行 webpack(這裏的 test 是在上邊 scripts 裏本身定義的),可是會顯示這樣的結果。
這是由於入口文件不存在,webpack 默認是將當前目錄下的 ./src/index.js 當作要打包的文件(入口),新建一下 src 目錄和 index.js 文件,就能夠正常了。
這時會生成一個 dist 目錄以及目錄裏有一個 main.js,這是默認的打包好的文件及目錄(出口),這樣一個 webpack 算是初始化完成了。
注:
在上面也說了 webpack4 如今能夠無需使用任何配置文件就可使用,可是有些東西仍是弄成本身喜歡的比較好
在當前目錄下新建一個 webpack.config.js 文件,並寫入代碼
const path = require('path');//[1] module.exports = { //[2] };
webpack --config my.config.js
爲了能證實入口確實改了有效果,我將 ./src/index.js 的文件名改成 2048.js,並放到./src/js/2048.js ;
並修改代碼
const path = require('path'); module.exports = { entry: "./src/2048.js"//add };
在不加上面代碼時會報以前的找不到入口的錯誤,加了之後會顯示正常輸出了,而且 ./dis 下會多一個 2048.js 的文件,
entry 不光能賦值絕對路徑的字符串,還能賦值多個路徑的數組或對象
entry: './src/2048.js'//單入口 字符串傳參 entry: ['./src/js/2048.js','./src/js/1024.js','./src/js/512.js']//多入口 數組傳參 entry: {//多入口 對象傳參 2048: './src/js/2048.js', 1024: './src/js/1024.js', 512: './src/js/512.js' }
出口跟入口不太同樣,入口能夠有不少,可是隻有一個輸出配置。
output: { filename: '2048.js', path: 'C:/Users/GengShaojing/Desktop/2048/dist' }
output: { filename: '[name].js',//[1] path: path.resolve(__dirname, 'dist')//[2] }
output: { filename: "[name].[chunkhash].js", path: path.resolve(__dirname, 'dist') }
filename 支持如下幾個屬性,且能夠共存