Error: Cannot find module './pulp'
Error: Cannot find module './pulp'
正在尝试通过 node.js 5.3.0 在 Windows 7 上安装 PureScript 和 pulp:
npm install -g purescript
npm install -g pulp
cd some-empty-dir
pulp init
安装似乎工作正常,但 pulp
总是失败并出现错误:
module.js:328
throw err;
^
Error: Cannot find module './pulp'
at Function.Module._resolveFilename (module.js:326:15)
at Function.Module._load (module.js:277:25)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (C:\Users\me\AppData\Roaming\npm\node_modules\pulp\index.js:2:1)
at Module._compile (module.js:398:26)
at Object.Module._extensions..js (module.js:405:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:430:10)
index.js 只包含这两行:
#!/usr/bin/env node
require("./pulp");
C:\Users\me\AppData\Roaming\npm
是我路径的最后一部分。
where pulp
returns
C:\Users\me\AppData\Roaming\npm\pulp
C:\Users\me\AppData\Roaming\npm\pulp.cmd
我对 Git Bash 进行了相同的尝试,但结果相同。
我尝试重新安装 purescript 和 pulp 以及 node/npm 但它没有任何改变。
在另一台电脑上我没有问题。似乎有什么东西干扰了我在这个特定系统上的安装。环境变量,现有或不存在的目录,...?
我不熟悉 node.js 也不知道去哪里找。知道出了什么问题吗?
编辑:路径中的文件内容
C:\Users\me\AppData\Roaming\npm\pulp:
#!/bin/sh
basedir=`dirname "[=14=]"`
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/node_modules/pulp/index.js" "$@"
ret=$?
else
node "$basedir/node_modules/pulp/index.js" "$@"
ret=$?
fi
exit $ret
C:\Users\me\AppData\Roaming\npm\pulp.cmd:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\node_modules\pulp\index.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\node_modules\pulp\index.js" %*
)
只是 运行 命令 pulp
执行 pulp.cmd
的 "else" 分支。
好吧,原来是我漏了bower
and/orjshint
。其他人可能已经安装了这些软件包,因为它们很常见。
我大致解决了这个问题:
npm uninstall -g pulp
npm install -g bower
npm install -g jshint
npm install -g pulp
我最好的猜测是某些安装后脚本失败了。不幸的是,我无法再重现该问题。即使在卸载 node.js、删除 %HOME%\AppData\Roaming
中的文件夹并从头开始重新安装所有内容后:pulp
现在可以正常工作了。
对于遇到相同问题并在以后发现此问题的任何人:我最好的解决方法是 运行 以下命令:
npm uninstall -g pulp
npm cache clean pulp
npm install -g pulp
为什么我认为这会解决问题:
我刚刚遇到了同样问题的其他人。在他们的例子中,发生的事情是 pulp.js
不知何故未包含在包 tarball 中。 pulp.js
是由 Pulp 的预发布脚本生成的文件,因此它应该与 index.js
在同一目录中 - 也就是说,您应该在以下目录中有一个文件 pulp.js
:
$ echo `npm root -g`/pulp/
删除缓存版本的 pulp 并重新下载(即上述命令)解决了问题。
正在尝试通过 node.js 5.3.0 在 Windows 7 上安装 PureScript 和 pulp:
npm install -g purescript
npm install -g pulp
cd some-empty-dir
pulp init
安装似乎工作正常,但 pulp
总是失败并出现错误:
module.js:328
throw err;
^
Error: Cannot find module './pulp'
at Function.Module._resolveFilename (module.js:326:15)
at Function.Module._load (module.js:277:25)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (C:\Users\me\AppData\Roaming\npm\node_modules\pulp\index.js:2:1)
at Module._compile (module.js:398:26)
at Object.Module._extensions..js (module.js:405:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:430:10)
index.js 只包含这两行:
#!/usr/bin/env node
require("./pulp");
C:\Users\me\AppData\Roaming\npm
是我路径的最后一部分。
where pulp
returns
C:\Users\me\AppData\Roaming\npm\pulp
C:\Users\me\AppData\Roaming\npm\pulp.cmd
我对 Git Bash 进行了相同的尝试,但结果相同。 我尝试重新安装 purescript 和 pulp 以及 node/npm 但它没有任何改变。
在另一台电脑上我没有问题。似乎有什么东西干扰了我在这个特定系统上的安装。环境变量,现有或不存在的目录,...?
我不熟悉 node.js 也不知道去哪里找。知道出了什么问题吗?
编辑:路径中的文件内容
C:\Users\me\AppData\Roaming\npm\pulp:
#!/bin/sh
basedir=`dirname "[=14=]"`
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/node_modules/pulp/index.js" "$@"
ret=$?
else
node "$basedir/node_modules/pulp/index.js" "$@"
ret=$?
fi
exit $ret
C:\Users\me\AppData\Roaming\npm\pulp.cmd:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\node_modules\pulp\index.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\node_modules\pulp\index.js" %*
)
只是 运行 命令 pulp
执行 pulp.cmd
的 "else" 分支。
好吧,原来是我漏了bower
and/orjshint
。其他人可能已经安装了这些软件包,因为它们很常见。
我大致解决了这个问题:
npm uninstall -g pulp
npm install -g bower
npm install -g jshint
npm install -g pulp
我最好的猜测是某些安装后脚本失败了。不幸的是,我无法再重现该问题。即使在卸载 node.js、删除 %HOME%\AppData\Roaming
中的文件夹并从头开始重新安装所有内容后:pulp
现在可以正常工作了。
对于遇到相同问题并在以后发现此问题的任何人:我最好的解决方法是 运行 以下命令:
npm uninstall -g pulp
npm cache clean pulp
npm install -g pulp
为什么我认为这会解决问题:
我刚刚遇到了同样问题的其他人。在他们的例子中,发生的事情是 pulp.js
不知何故未包含在包 tarball 中。 pulp.js
是由 Pulp 的预发布脚本生成的文件,因此它应该与 index.js
在同一目录中 - 也就是说,您应该在以下目录中有一个文件 pulp.js
:
$ echo `npm root -g`/pulp/
删除缓存版本的 pulp 并重新下载(即上述命令)解决了问题。