走在職業的道路上總是有很多迷惘。 不後悔曾經的自己選擇了前端這條路,即使前方佈滿了荊棘。 因此想要留下點什麼,也可以記錄下在這條路上的種種。 或許在未來的某個時間點,可以以另一種眼光看待這曾經的當下。
2019-04-16
webpack 設定筆記 ✧ 設定 NODE_ENV 環境變數
markdown
## process.env
為 node.js 的原生對象,然只在 MAC 中可以順利運行
## process.env.NODE_ENV
指在 process.env 對象下,新增一個名為「NODE_ENV」的對象
## cross-env
在 Windows 環境下,並沒有向 MAC 一樣有內建 process.env 的對象,因此需要安裝此套件,以便 Windows 的使用者可以使用相關對象參數。
```
// 安裝方式 in CMD
npm i cross-env -D
```
## scripts 設定方式
檔案名稱:package.json
```
"scripts": {
"start": "cross-env NODE_ENV=development webpack",
"deploy": "cross-env NODE_ENV=production webpack"
}
```
## webpack mode 設定方式
檔案名稱:webpack.config.js
```
module.exports = {
context: path.resolve(__dirname, './src'),
entry: './index.js',
mode: process.env.NODE_ENV,
output: {
path: path.resolve(__dirname, './dist'),
filename: 'index.min.js'
}
};
```
## 使用範圍
除了可以直接在 webpack.config.js 直接指定 mode 狀態,也在不同模式下對函式進行判斷。如:
編成過程中常使用的 console.log()
```
function log(e) {
if (process.env.NODE_ENV === 'development') {
console.log(e);
}
}
```
改寫之後,在佈署 (production) 模式下不會有 console 輸出。