Node.js v .env 檔案、導入模組和權限模型
Node.js v20.6 已發布,其中包含令人驚嘆的新功能,這些新功能是 2023 年 10 月 24 日起 LTS 版本的一部分。讓我們拭目以待!
INI 設定檔
告別 dotenv 套件,現在 Node.js 可以從 .env 檔案載入環境變數。
node --env-file path/to/.env index.js
? INI 檔案的路徑是必要的,因為 Node.js 沒有為 INI 檔案選擇預設名稱。
?如果 INI 檔案不存在,則節點進程不會失敗,只需在沒有環境變數的情況下開始運行即可。
正在載入NODE_OPTIONS
您可以使用 INI 設定檔載入 Node.js 的特定環境變數(如 NODE_OPTIONS),如下例所示:
NODE_NO_WARNINGS=1 NODE_OPTIONS="--experimental-permission --allow-fs-read=*" TZ=Pacific/Honolulu UV_THREADPOOL_SIZE=5
您可以使用相同的方法:
node --env-file .env index.js
預先載入 ES 模組
在啟動時使用 --import 標誌預先載入 ES 模組,該模組將在任何應用程式程式碼運行之前加載,甚至是入口點。
node --import path/to/file.js index.js
此標誌類似於眾所周知的用於載入 CommonJS 模組的 --require 標誌。
?使用 --require 預先載入的模組將在使用 --import 預先載入的模組之前執行。
權限模型
我們有一個新的機制來限制在執行 Node.js 進程期間對特定資源的訪問,稱為權限模型。該 API 存在於標誌 --experimental-permission 後面,啟用該標誌後,將限制對所有未明確允許的資源的存取。
檔案系統權限
--allow-fs-read 標誌允許使用 * 的所有 FileSystemRead 操作,或使用絕對路由的特定路徑。
node --experimental-permission --allow-fs-read=* index.js
要只允許存取特定路徑,您應該使用絕對路由
node --experimental-permission --allow-fs-read=/path/to/index.js --allow-fs-read=/path/to/directory index.js
?還需要允許初始化程式模組。否則 Node.js 進程本身無法載入 index.js 檔案。
?您可以使用 .允許存取工作目錄,但不能使用它來指定檔案的路徑(例如 ./index.js)。
node --experimental-permission --allow-fs-read=. index.js
--allow-fs-write 標誌允許使用 * 存取特定路徑或整個檔案系統。
node --experimental-permission --allow-fs-read=. --allow-fs-write=/tmp/ index.js
子行程
啟用權限模型後,預設情況下進程將無法產生任何子進程,您應該使用 --allow-child-process 來允許此操作。讓我們對index.js 使用以下程式碼。
const childProcess = require('node:child_process'); childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("./new-file.txt", "Hello, World!")']);
要在啟用權限模型的情況下執行此程式碼片段,您應該使用以下命令執行index.js:
node --experimental-permission --allow-fs-read . --allow-child-process index.js
?子程序預設不會繼承權限模型,所以new-file.txt建立成功。
更多選擇
如果您想在此權限模型下建立工作線程,可以檢查 --allow-worker 標誌,並檢查 --allow-wasi 以允許建立 WASI 實例
結論
我們有很多新工具來為我們的應用程式載入環境變量,一種導入程式碼中所需的預先載入 ES 模組的方法,以及一個新的權限模型來提高系統的安全性。
請繼續關注 Node.js 的博客,這個團隊正在每個版本中添加很棒的功能!我們在 v22.6.0 中提供了初始 TypeScript 支援和使用 DevTools 的網路檢查。
以上是Node.js v .env 檔案、導入模組和權限模型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...
