摘要:開發環境和生產環境分離的原因在開發時,會產生或者是測試的代碼,這些代碼不應該出現在生產環境中。當項目部署時,往往會將代碼進行一系列的壓縮來優化它,如此會徹底破壞代碼的可讀性。方案二使用這個參數來辨別開發環境。
開發環境和生產環境分離的原因
在開發時,會產生 debug 或者是測試的代碼,這些代碼不應該出現在生產環境中。當項目部署時,往往會將代碼進行一系列的壓縮來優化它,如此會徹底破壞代碼的可讀性。本地開發往往使用的是本地 mock 的數據,而正是上線后用的是真實數據。以上幾點,開發環境和生產環境必須得分離。
比如我想讓項目根據不同的環境登錄不同的地址。本地開發登錄的是localhost,測試環境登錄的是test地址,上線環境登錄的是online地址。那么業務代碼里如何判斷生產開發測試環境呢?
方案一 將環境變量配置到 package.json// package.json { // npm install cross-env // 因為mac和windows設置命令環境變量的命令不一致, 所以用cross-env來做兼容 "script": { "dev": "cross-env NODE_ENV=dev webpack --progress --colors", "production": "cross-env NODE_ENV=production webpack --progress --colors" } } // npm run dev // 開發 // npm run production // 生產
那么 package.json 的 script中的參數, webpack文件中如何讀取呢?
在 webpack 中, 可通過 process.env.NODE_ENV獲取到變量
// webpack 下 plugins: [ new webpack.DefinePlugin({ "process.env": { NODE_ENV: JSON.stringify(process.env.NODE_ENV) } }) ]
為什么需要加上JSON.stringify, 因為webpack 打包的時候對變量做替換會將 process.env.NODE_ENV 替換成 production, 而我們期望的是 "production"
有個問題,new webpack.DefinePlugin 定義的全局變量是 在編譯時可以配置的全局常量。,那么,如何在 webpack config 文件中使用 process.env.NODE_ENV 呢?
就是上面的回答,在腳本中設置變量 并且用上cross-env。 因此經常兩者結合使用。
使用process.env.npm_lifecycle_event 這個參數來辨別開發環境。
npm 提供一個 npm_lifecycle_event 變量,返回當前正在運行的腳本名稱
這個方法極為簡單。
npm scripts 使用指南
webpack.DefinePlugin使用介紹
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/97141.html
摘要:開發環境和生產環境都擁有的配置,但在細節上有所不同,比如說,又比如說中的和參數。更重要的是,實際上開發環境和生產環境的配置文件的絕大部分都是一致的,對于這一致的部分來說,我們堅決要消除冗余,否則后續維護起來不僅麻煩,而且還容易出錯。 本文首發于Array_Huang的技術博客——實用至上,非經作者同意,請勿轉載。原文地址:https://segmentfault.com/a/11900...
摘要:接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。隨著案例和執行結果的不斷積累,接口測試覆蓋會更加充分,統計結果會更加精確。 原文出自【聽云技術博客】:http://blog.tingyun.com/web/a... 今年遇到了幾個問題,與接口的功能和性能相關,恰巧最近公司也在組織以冒煙測試為主題的活動,于是乎突發奇想,尋思著能否將接口測試與冒煙測試結合起來,發掘一...
摘要:一返回值調用外部方法獲取的值需要對類型做判斷,因為我們對方法返回的值是有期望值類型,但是卻不能保證這個接口返回的值一直是同一個類型。 19年目標:消滅英語!我新開了一個公眾號記錄一個程序員學英語的歷程 有提升英語訴求的小伙伴可以關注公眾號:csenglish 程序員學英語,每天花10分鐘交作業,跟我一起學英語吧 javascript作為一門動態類型語言,具有很高的動態靈活性,當定義函數...
摘要:大交通研發質量體系建設為了幫助用戶更好地完成消費決策閉環,馬蜂窩上線了大交通業務,為用戶提供購買機票火車票等服務。 質量是決定產品能否成功、企業能否持續發展的關鍵因素之一。如何做好質量體系建設,這是個比較大的話題,包含的范圍很廣,也沒有固定的衡量標準。 打開一個互聯網公司招聘網站,搜索「測試工程師」崗位時,你會發現幾乎全部 JD 都包含一條要求「建設或者參與建設所負責業務的質量體系」。...
摘要:大交通研發質量體系建設為了幫助用戶更好地完成消費決策閉環,馬蜂窩上線了大交通業務,為用戶提供購買機票火車票等服務。 質量是決定產品能否成功、企業能否持續發展的關鍵因素之一。如何做好質量體系建設,這是個比較大的話題,包含的范圍很廣,也沒有固定的衡量標準。 打開一個互聯網公司招聘網站,搜索「測試工程師」崗位時,你會發現幾乎全部 JD 都包含一條要求「建設或者參與建設所負責業務的質量體系」。...
閱讀 1860·2021-09-29 09:35
閱讀 2721·2021-09-22 15:25
閱讀 1979·2021-08-23 09:43
閱讀 2056·2019-08-30 15:54
閱讀 3357·2019-08-30 15:53
閱讀 2394·2019-08-30 13:50
閱讀 2406·2019-08-30 11:24
閱讀 2277·2019-08-29 15:37