我在NodeJS項目中使用dotenv版本16.0.0,但最近添加的注釋功能導致崩潰。如果沒有這些評論的話。env文件工作正常,可以從中加載值。
這個環境文件內容:
# Print out information during runtime, useful for debugging problems not caught.
(true/false)
VERBOSE=false
# Database settings, update for actual deployment environment
DB_USERNAME=postgres
DB_PASSWORD=TINY_DUCK
DB_NAME=user_database
DB_HOST=localhost
DB_PORT=5432
運行NodeJS項目的命令是:
mocha -r .env ./tests/testManager.js --exit
以及運行NodeJS項目時收到的錯誤消息:
× ERROR: C:\Users\thega\Source\Repos\network\.env:1
# Print out information during runtime, useful for debugging problems not caught. (true/false)
^
SyntaxError: Invalid or unexpected token
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1031:15)
at Module._compile (node:internal/modules/cjs/loader:1065:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at exports.requireOrImport (C:\Users\thega\source\repos\network\node_modules\mocha\lib\nodejs\esm-utils.js:60:20)
at async exports.handleRequires (C:\Users\thega\source\repos\network\node_modules\mocha\lib\cli\run-helpers.js:94:28)
at async C:\Users\thega\source\repos\network\node_modules\mocha\lib\cli\run.js:353:25
在我看來,似乎您正在嘗試將
.env
文件作為JS模塊導入,而不是將其與dotenv包一起加載。mocha
的-r
標志表示“需要”:所以它會嘗試以JavaScript的形式加載文件,當然這是行不通的。
相反,您可以要求
dotenv/config
,這樣它將為您解析文件并相應地更新process.env
:或者,如果你已經在代碼中做了
require('dotenv').config()
,你根本不需要在這里做任何-r
開關。