2017-05-25 31 views
0

我正在嘗試覆蓋或更改其他文件中的package.json中的值。基本上,當我運行npm run build時,package.json有一個「主頁」值。我希望能夠改變從我的config.jsconfig.production.json文件。我希望我的環境值都在配置文件中,因此修改起來更容易。但是,當我運行npm run build時,它仍會從package.json加載我的主頁值。重寫或更改package.json「主頁」值

的package.json

{ 
    "homepage": "/company/portal" 
} 

config.production.json

{ 
    "configPath": "/newCompany/portal" 
} 

謝謝您的幫助

回答

1

如果在一般的意思是如何通過寫在客戶機中的文件一個在瀏覽器中的腳本,它不是一件容易的事情,你也將有很多跨瀏覽器的問題實現它。0

你可以嘗試看看這個庫,它似乎相當不錯:

https://eligrey.com/demos/FileSaver.js/

您也可以考慮啓動一個AJAX請求,例如Node.js應用程式,將寫信給你的文件輕鬆地在您的系統上或者提供下載,或者通常到服務器端,這將提供要下載到客戶端的文件。

但是,從你描述的情況,你只需要改變你的系統配置文件,所以,最簡單的方法是使用Node.js的

考慮你是如何使用Node.js它通常是強烈反對將您的env變量值放入JSON文件中。看起來你可以保持順序,但很可能你的代碼會被推到某個地方,所以打開JSON文件,任何人都可以看到你所有的env變量的值。這不是一件好事。

在我看來,你應該考慮編寫你的構建腳本,以便在調用時接受參數,然後調用傳遞參數的構建。例如:

npm build --production 
npm build --development 

根據參數,您將設置正確的配置。

我希望這可以幫助

+0

非常有趣的答案。我稍後可能會研究它。現在,我的解決方法是給主頁這個值**「。」**並在我的配置文件中給出一個新的路徑。 – petithomme

+0

你能否展開爲什麼把我的路徑放入Json文件是不安全的?在Js文件中它更好嗎?爲什麼?謝謝 – petithomme

+0

不好意思,我的意思是env變量值一般不好。但是,正如我上面所解釋的那樣,特別涉及安全問題 但是,如果你想存儲你的路徑,這根本不會造成問題。 我仍然建議你提供自定義構建傳遞參數,你可能需要CI/CD,你可以簡單地觸發構建傳遞參數。例如,您可能還需要生產與開發之間的其他更改。我希望它有幫助 – quirimmo