.env 使用 vscode 和 dotenv npm 调试断点
Posted
技术标签:
【中文标题】.env 使用 vscode 和 dotenv npm 调试断点【英文标题】:.env with debugging breakpoint using vscode and dotenv npm 【发布时间】:2019-07-01 05:01:00 【问题描述】:我正在使用 nodejs 服务器端 api,使用 dotenv npm 包设置环境变量,并从 package.json 中的 npm 脚本运行代码,如下所示:
"scripts":
"local": "cross-env NODE_ENV=local nodemon ./bin/www"
我需要配置我的 .vscode/launch.json 文件。
目前看起来像:
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
请指导我。谢谢, Gopal.R
dotenv npm package Visual Studio 代码 - Launch configurations【问题讨论】:
【参考方案1】:我对打字稿调试有同样的问题,我在这里找到了答案。需要指定runtimeArgs
和envFile
参数才能生效。
TypeScript 调试的launch.json
示例:
"version": "0.2.0",
"configurations": [
"type": "pwa-node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "$workspaceFolder/src/server.ts",
"preLaunchTask": "tsc: build - tsconfig.json",
"outFiles": [
"$workspaceFolder/built/**/*.js"
],
"runtimeArgs": [
"--require=dotenv/config"
],
"envFile": "$workspaceFolder/.env"
]
【讨论】:
【参考方案2】:您可能希望将 .dotenv
环境变量设置为:
NODE_ENV=local
然后要在调试器中使用它,您需要将其添加到您的 launch.json
配置中,例如:
"runtimeArgs": [
"--require=dotenv/config"
]
这里是上下文:
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
"type": "node",
"request": "launch",
"name": "Launch | local with dotenv config",
"program": "$workspaceFolder/bin/www/your_script.js",
"runtimeArgs": [
"--require=dotenv/config"
]
]
--require=dotenv/config
相当于在您的脚本中运行 require('dotenv').config()
或在您使用命令行时运行 node -r dotenv/config your_script.js
。
这里有一些可以在配置中放置环境变量的替代示例。
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
"type": "node",
"request": "launch",
"name": "Launch | local using env file",
"program": "$workspaceFolder/bin/www/your_script.js",
"envFile": "$workspaceFolder/.env"
,
"type": "node",
"request": "launch",
"name": "Launch | local without dotenv",
"program": "$workspaceFolder/bin/www/your_script.js",
"env" :
"NODE_ENV" : "local"
]
注意:此代码尚未经过测试...欢迎提供反馈。
【讨论】:
"envFile": "$workspaceFolder/.env"
为我工作。以上是关于.env 使用 vscode 和 dotenv npm 调试断点的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 和 dotenv 更改保存在 .env 文件中的环境变量
如何在 VSCode 设置中将文件关联设置为自定义 .env 文件名?