更改脚本的工作目录 npm

问题:

是否可以改变其中的上下文 npm 运行脚本?

我想要的是:


"scripts": {
"test": "gulp mocha",
"pre-install": "./deps/2.7/cpython/configure --prefix=$/pwd//build --exec-prefix=$/pwd//build && make -C deps/2.7/cpython && make -C deps/2.7/cpython install",
"install": "node-gyp rebuild"
},


很明显
cd deps/2.7/cpython/ && ./configure

将在Unix的系统上工作,但不是 windows.

为什么:

问题的根源是团队
configure

逆流 python 将文件显示为调用它的目录。 但是,文件与装配有关
make


make install

, 哪些正在寻找repo目录中的文件。

在这种情况下,我无法改变
Makefile

, 作为装配过程 Python 出于显而易见的原因是复杂的。

选择:

替代,可能 , 是写一些
install.js

和使用 node OS independent API 还有一些
child_process.exec//

, 我可能会做什么。 但是,不要离开

npm

这将是非常好的。
已邀请:

帅驴

赞同来自:

npm

允许您只做
cd dir && command -args

, 这也将努力 Windows.

更改为使用该功能
node

's spawn 完成了 PR
https://github.com/npm/npm/pull/10958
, 但由于上述决定,它被拒绝。

涵秋

赞同来自:

如上所述:

npm 可能是使用


var spawn = require/'child_process'/.spawn


什么将允许您设置这样的参数:


{cwd: pwd + 'somepath'}


但这不是暴露。

我用一个相当大的人决定它
install.js

, 这使得一些大致相同并且被称为
package.json

, 如上所述。 但是,S. The API 的
child_process

不那么容易应对,因为它抛出许多难以调试错误。 我花了一些时间,但现在我很高兴。

要回复问题请先登录注册