gpt4 book ai didi

node.js - 是否可以使用 source 运算符在当前上下文中运行 npm 脚本?

转载 作者:搜寻专家 更新时间:2023-11-01 00:08:17 25 4
gpt4 key购买 nike

我正在尝试编写一个简单的 Node.js CLI 来更轻松地导航目录。为了简单起见,假设这是我要制作的 CLI:

测试.js

#!/usr/bin/env node
console.log('hey there');
var exec = require('child_process').exec;
exec('cd ~/code/');

包.json

{
"name": "example",
"version": "0.1.0",
"description": "Example CLI that needs to run in current context",
"bin": {
"myScript": "test.js"
},
"engines": {
"node": "0.10.*",
"npm": "1.2.*"
}
}

将它们放在同一个文件夹中,运行 npm link 将创建 CLI。之后,如果我运行 myScript,它会输出“嘿那里”但不会更改目录。我知道这是因为 myScript 在它自己的子 shell 中运行,随后终止。我读过 here关于源运算符,发现它是这样使用的:

. filename [arguments]

我试过 。 myScript 强制我的代码在当前上下文中运行。但是,通过使用 source 运算符,代码将被解释为 bash 而不是 js。这是我得到的错误:

-bash: /Users/dallinosmun/.nvm/v0.10.21/bin/myScript: line 3: syntax error near unexpected token `('
-bash: /Users/dallinosmun/.nvm/v0.10.21/bin/myScript: line 3: `var exec = require('child_process').exec;'

那么,关于如何让 Node.js CLI 在当前上下文中运行有什么想法吗?

最佳答案

这是不可能的,因为 exec 命令启动了一个新进程。但这是绕过问题的方法的链接:

how do I make node child_process exec continuously

关于node.js - 是否可以使用 source 运算符在当前上下文中运行 npm 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com