cross-env 執行跨平臺設定和使用環境變數的指令碼
阿新 • • 發佈:2021-08-23
1.1 cross-env是什麼
執行跨平臺設定和使用環境變數的指令碼
1.2 出現原因
當您使用 NODE_ENV=production, 來設定環境變數時,大多數 Windows 命令提示將會阻塞(報錯)。(異常是Windows上的Bash,它使用本機Bash。)換言之,Windows 不支援 NODE_ENV=production 的設定方式。
1.3 解決
cross-env 使得您可以使用單個命令,而不必擔心為平臺正確設定或使用環境變數。這個迷你的包(cross-env)能夠提供一個設定環境變數的 scripts,讓你能夠以 Unix 方式設定環境變數,然後在 Windows 上也能相容執行。
1.4 安裝
npm install --save-dev cross-env
1.5 使用
{ "scripts": { "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js" } }
NODE_ENV環境變數將由 cross-env 設定 列印 process.env.NODE_ENV === 'production'
例如,webpack很多都有設定如下:
// Source maps are resource heavy and can cause out of memory issue for large source files.const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';
此時 該判斷在打包的時候,會一直預設是需要map檔案的, 其本身是有三種方式處理:
1: 根目錄下建立 .env檔案,並增加一句引數
GENERATE_SOURCEMAP=false
2: 將改語句改為:
// Source maps are resource heavy and can cause out of memory issue for large source files. // const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';const shouldUseSourceMap = false;
3: 就用到我們這個外掛,在package.json中建立一個用於不生成sourcemap的打包命令:
"scripts": { "start": "node scripts/start.js", "build": "node scripts/build.js", "build-p": "cross-env GENERATE_SOURCEMAP=false node scripts/build.js", "test": "node scripts/test.js" },