我在Windows 10环境中为Atom文本编辑器编写插件,允许通过原子内的量角器黄瓜运行测试,它消耗了PlatformIO-Terminal插件提供的服务。当我从Atom中激活终端插件时,我希望能够从我的终端执行任何旧程序,它可以通过pty模拟它。
我在执行任何节点程序时遇到问题,我已经通过npm在Atom的apm之外安装了。通过从该终端内打印环境变量NODE_PATH进一步挖掘,发现Atom已经吃掉了我的NODE_PATH值,没有附加它自己但完全消耗并替换它。从该pty窗口中重置它并不起作用,也没有将它添加到" Shell环境变量"从PlatformIO配置终端内部。我已经安装了3个插件,允许从操作系统中提取环境变量,但没有一个插件成功。
有没有办法解决这个问题?我可以直接访问可执行模块,但是它们会调用其他模块并依赖于NODE_PATH。
答案 0 :(得分:1)
如果您未使用终端套餐取得成功,可以尝试process-palette
。它允许您精确定义命令的所有细节,包括环境变量。我做了一个Atom命令,在执行终端命令之前将NODE_ENV
设置为任意字符串。屏幕截图如下:
下面是一个process-palette.json
文件,它定义了我编写的命令。您需要做的就是安装软件包,使用以下代码制作该文件,然后选择Packages -> Process Palette -> Edit Configuration
。
{
"patterns": {
"P1": {
"expression": "(path):(line)"
},
"P2": {
"expression": "(path)\\s+(line)",
"path": "(?:\\/[\\w\\.\\-]+)+"
}
},
"commands": [
{
"namespace": "process-palette",
"action": "env",
"command": "echo %NODE_PATH%",
"arguments": [],
"cwd": null,
"inputDialogs": [],
"env": {
"NODE_PATH": "wargarble"
},
"keystroke": null,
"stream": true,
"outputTarget": "panel",
"outputBufferSize": 80000,
"maxCompleted": 3,
"autoShowOutput": true,
"autoHideOutput": false,
"scrollLockEnabled": false,
"singular": false,
"promptToSave": true,
"saveOption": "none",
"patterns": [
"default"
],
"successOutput": "{stdout}",
"errorOutput": "{stdout}\n{stderr}",
"fatalOutput": "Failed to execute : {fullCommand}\n{stdout}\n{stderr}",
"startMessage": null,
"successMessage": "Executed : {fullCommand}",
"errorMessage": "Executed : {fullCommand}\nReturned with code {exitStatus}\n{stderr}",
"fatalMessage": "Failed to execute : {fullCommand}\n{stdout}\n{stderr}",
"menus": [
"env"
],
"startScript": null,
"successScript": null,
"errorScript": null,
"scriptOnStart": false,
"scriptOnSuccess": false,
"scriptOnError": false,
"notifyOnStart": false,
"notifyOnSuccess": true,
"notifyOnError": true,
"input": null
}
]
}