我正在尝试在Windows下构建d3.js.我已经安装了cygwin来运行makefile.但是,作为make install的一部分,它调用'npm install',并且此调用失败:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'C:\cygdrive\c\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)
Makefile:230: recipe for target `install' failed
make: *** [install] Error 1
Run Code Online (Sandbox Code Playgroud)
问题似乎是cygwin路径前缀('cygdrive\c')被添加到文件路径中(除此之外,路径是正确的).
我想知道这个问题是否有一个好的解决方法?我试图导出NODE_PATH变量以及在Makefile中更改它.但是,这不会影响此错误(我宁愿保持Makefile不变).
编辑:当我从Webstorm命令行(没有cygwin)调用'npm install'时它工作.我必须手动安装contextify(jsdom要求)('npm install contextify -f'然后将.node文件从https://github.com/Benvie/contextify/downloads复制到build/Release for contextify),然后运行之后'npm install jsdom'和'npm install vows'.
您可以编辑该npm脚本,使其支持 cygwin:
#!/bin/sh
cygwin=false;
case "`uname`" in
CYGWIN*) cygwin=true;
esac
basedir=`dirname "$0"`
if $cygwin; then
basedir=`cygpath -w "$basedir"`
fi
if [ -x "`dirname "$0"`/node.exe" ]; then
"$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
else
node "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2231 次 |
| 最近记录: |