【发布时间】:2020-11-11 23:34:05
【问题描述】:
我知道这个问题听起来可能与这个问题相似:How do I add environment variables to launch.json in VSCode
但我真正想要的是在实际的 launch.json 文件中使用我的 .env 文件中的变量,而不是在程序中使用它们。
所以我的设置是这样的:
project-root/
|-- .env
|-- .vscode/
|-- launch.json
|-- src/
|-- my-plugin/
|-- my-theme/
|-- wordpress/
|-- data/
|-- docker-compose.yml
在我的 .env 文件中,我有这个:
PLUGIN_SLUG=my-plugin
THEME_SLUG=my-theme
现在,在我的 launch.json 文件中,我真的希望能够像这样使用 ${THEME_SLUG} 和 ${PLUGIN_SLUG} 变量:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {
"/var/www/html/wp-content/plugins/${PLUGIN_SLUG}": "${workspaceRoot}/src/${PLUGIN_SLUG}",
"/var/www/html/wp-content/themes/${THEME_SLUG}": "${workspaceRoot}/src/${THEME_SLUG}",
"/var/www/html": "${workspaceRoot}/wordpress",
},
}
],
}
知道如何实现吗?
::编辑::
进一步挖掘后,我意识到当我在/etc/profile.d/temp.sh 中全局设置变量时,如下所示:
export PLUGIN_SLUG=codeable-plugin
export THEME_SLUG=codeable-theme
退出系统并重新登录后,我可以在任何地方使用这些变量,包括在我的 launch.json 文件中,如下所示:
"/var/www/html/wp-content/plugins/${env:PLUGIN_SLUG}": "${workspaceRoot}/src/${env:PLUGIN_SLUG}",
"/var/www/html/wp-content/themes/${env:THEME_SLUG}": "${workspaceRoot}/src/${env:THEME_SLUG}",
虽然这离我想要的更近了一步,但实际上并不可行,每次我切换项目时在我的全局操作系统配置中手动更新这些变量,然后注销并再次登录。
【问题讨论】:
-
你用的是什么扩展?
php不是启动配置的有效类型。最终,我认为你会很遗憾地受到扩展支持的摆布。我认为您的问题是特定于 php 并使用.env文件而不仅仅是“使用自定义环境变量”,因为例如,节点启动配置已经支持使用envFile -
@soulshined PHP Debug by Felix Becker。您对如何为简单的节点启动配置完成它有任何参考吗? (没有 PHP)
-
当然。您只需使用内置节点配置并调用
envFile属性,输入文件名并引用您执行的变量,就像您在示例中显示的那样:${env:} -
我确定我使用默认节点项目尝试过此操作,并且我很确定 VSC 不会自动加载 .env 文件。我相信
${env:}仅适用于全局系统变量。不过我可能是错的。您是否找到任何有关此的文档? -
它不会自动加载
.env文件,正确。这就是envFile属性的用途。 github.com/microsoft/vscode-js-debug/blob/master/OPTIONS.md
标签: visual-studio-code environment-variables