1: 默認entry和outputnode
最新版本的webpack已經能夠不須要webpack.config.js做爲配置文件。若是你的項目缺失配置文件的話,webpack會作如下默認配置:webpack
entry - src/index.js output - dist/main.js
2: 默認配置文件 vs 制定配置文件 web
若是項目根目錄有webpack.config.js文件,那webpack會默認使用它做爲配置文件。咱們也能夠本身在命令行裏經過 --config 指定配置文件,例如:npm
"scripts": { "build": "webpack --config prod.config.js" }
3: pathui
webpakc使用node.js內置的path庫來處理路徑:spa
const path = require('path')
你可能還會注意到這個變量:__dirname
__dirname 的值就是當前module的路徑,它和對__filename執行path.dirname()是同樣的。例如:在/Users/mjr 路徑下執行node example.js,那麼:命令行
console.log(__dirname); // Prints: /Users/mjr console.log(path.dirname(__filename)); // Prints: /Users/mjr
4: context
context是一個絕對路徑,它指定了接下來的全部配置的基本路徑,默認是當前項目路徑。例如:
/Users/xxx/study/webpack-demo/webpack.config.jscode
const path = require('path'); var context = path.resolve(__dirname, './'); console.log(context); //Users/xxx/study/webpack-demo module.exports = { context: context, entry: './src/index.js', output: { filename: "main.js", path: path.resolve(__dirname, 'dist') } }
假如咱們在當前項目裏建立一個路徑test/, 可是裏面什麼都沒有,咱們把咱們配置裏的context改成test/路徑:
/Users/xxx/study/webpack-demo/webpack.config.js圖片
const path = require('path'); var context = path.resolve(__dirname, 'test'); console.log(context); //Users/xxx/study/webpack-demo/test module.exports = { context: context, entry: './src/index.js', output: { filename: "main.js", path: path.resolve(__dirname, 'dist') } }
當咱們再運行npm run build的時候,就會獲得error。由於path.resolve(__dirname, 'test')獲得的路徑是/Users/xxx/study/webpack-demo/test,咱們把context設爲這個路徑,咱們的entry是在當前context下尋找/src/index.js,而咱們知道這個確定是找不到的。ip
因此,由上面的例子咱們知道了context的做用。