我需要一種永久設置環境變量的方法。我現在只能在Windows上工作,但是理想情況下我想要一個與操作系統無關的解決方案。從我可以告訴,但Node將只爲當前進程/子進程設置var。我甚至想要什麼?是否可以永久設置環境變量?
0
A
回答
0
大概可以使用setx
和export
,雖然不確定需要的含義/特權(我假設在Windows中需要一個UAC凹凸,而在linux中你需要sudo)。這裏有一個猜測:
var exec = require('child_process').exec;
// Add FOO to global environment with value BAR
// setEnv('FOO', 'BAR', callback)
// Append /foo/bar to PATH
// setEnv('PATH', '+=;/foo/bar', callback)
function setEnv(name, value, cb) {
if (!name) throw new Error('name required.');
if (typeof value === 'undefined') throw new Error('value required.');
var cmd;
if (value.indexOf('+=') === 0) value = process.env[name] + value.substring(2);
value = value.indexOf(' ') > -1 ? `"${value}"` : value;
switch (process.platform) {
case 'linux': cmd = `export ${name}=${value}`; break;
case 'win32': cmd = `setx ${name} ${value} /m"; break;
default: throw new Error('unsupported platform.'); break;
}
exec(cmd, cb);
}
我應該提到這真的不是理想;我建議將它們定義爲執行任務的一部分,或者使用類似dotenv的東西。
+0
爲什麼這不理想? – user3715648
+0
我無法想到爲什麼我會在節點腳本的上下文中修改系統級環境值。我的意思是*可能*在一個實例中,比如從一個生成器中安裝某些東西,但我仍然不希望修改我的環境包。 –
相關問題
- 1. 如何永久設置環境變量?
- 2. 永久設置環境變量
- 3. 如何永久設置環境變量?
- 4. 爲VC命令行環境永久設置環境變量
- 5. 永久環境變量
- 6. 如何設置環境變量以獲得永久運行meteorjs
- 7. 如何在C中永久設置環境變量#
- 8. 在Mac OS上設置永久環境變量X
- 9. 永久設置環境變量的Shell腳本
- 10. 如何設置永久用戶環境變量?
- 11. 如何永久設置Windows環境變量?
- 12. 無法永久設置環境變量PATH
- 13. 使用bat命令永久設置java環境變量值
- 14. 使用命令提示符設置永久環境變量
- 15. 永久刪除JAVA_TOOL_OPTIONS環境變量
- 16. 是否可以在.sublime-project文件中設置環境變量?
- 17. 是否可以在travis中設置條件環境變量?
- 18. 是否可以爲一次測試設置環境變量?
- 19. 是否可以在Cucumber中設置一個環境變量?
- 20. 使環境變永久
- 21. 永久設置環境路徑
- 22. 如何以編程方式在Linux中設置永久環境變量?
- 23. 永久性設置配置變量
- 24. 是否可以在幻燈片上設置永久圖像
- 25. 使用Ruby永久(即在註冊表中)設置環境變量?
- 26. 在windows中設置永久變量%username%
- 27. Laravel3:必須永久設置的變量
- 28. 是否可以在一個CMD行語句中設置多個環境變量?
- 29. 設置環境變量
- 30. 設置Maven環境變量
「永久地」影響其他炮彈並繼續重新啓動?這是非常特定的平臺,甚至取決於該人使用的shell。我不知道有一個庫這樣做,也不是一個好主意,因爲如果你開始干擾環境變量到他們的shell配置中,人們有權爲難。 – tadman