visual-studio-code - 如何在 VSCode 的 launch.json 中使用自定义环境变量
问题描述
我知道这个问题可能听起来与这个问题相似: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}",
虽然这离我想要的更近了一步,但它并不是真的可行,每次我切换项目时在我的全局操作系统配置中手动更新这些变量,然后注销并再次登录。
解决方案
您可以在扩展命令变量v1.4.0的帮助下做到这一点。
您可以将.env
文件视为键值对文件。
您可以使用输入变量获取环境值的值:${input:name}
在输入变量中,您指定要使用的文件和密钥以及可能的默认值。
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {
"/var/www/html/wp-content/plugins/${input:envPLUGIN}": "${workspaceFolder}/src/${input:envPLUGIN}",
"/var/www/html/wp-content/themes/${input:envTHEME}": "${workspaceFolder}/src/${input:envTHEME}",
"/var/www/html": "${workspaceFolder}/wordpress",
},
}
],
"inputs": [
{
"id": "envPLUGIN",
"type": "command",
"command": "extension.commandvariable.file.content",
"args": {
"fileName": "${workspaceFolder}/.env",
"key": "PLUGIN_SLUG",
"default": "default-plugin"
}
},
{
"id": "envTHEME",
"type": "command",
"command": "extension.commandvariable.file.content",
"args": {
"fileName": "${workspaceFolder}/.env",
"key": "THEME_SLUG"
}
}
]
}
推荐阅读
- sql-server - 文本文件到 SQL
- android - 通过 Glide 在线性布局中加载 GIF 作为背景
- java - 从服务器更新 java 代码
- javascript - 从数组中获取具有最低值属性的对象
- javascript - 当 .toFixed(2) 小数点后为零时,如何将浮点数格式化为整数?
- python - 异步服务调用 Python
- sql - 在 mod(rownum,10) = number 上更新表的所有行中的列值
- .net - 条带订阅 webhook
- android - com.android.dex.DexException: 多个 dex 文件定义 Lorg/apache/cordova/Config
- sqlite - 在 SQLite 中减去 COUNT 结果