错误:找不到模块'./pulp'
试图通过node.js 5.3.0在Windows 7上安装PureScript和纸浆:
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
是我PATH的最后一部分。
where pulp
返回
C:\Users\me\AppData\Roaming\npm\pulp C:\Users\me\AppData\Roaming\npm\pulp.cmd
我尝试了与Git Bash相同的结果。 我尝试重新安装purescript和纸浆和节点/ NPM,但没有任何改变。
在另一台电脑上,我没有任何问题。 有些东西似乎干扰了我在这个特定系统上的安装。 环境variables,现有或不存在的目录,…?
我不熟悉node.js,不知道在哪里看。 任何想法有什么不对?
编辑:path中文件的内容
C:\用户\我\应用程序数据\漫游\故宫\浆:
#!/bin/sh basedir=`dirname "$0"` 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:\用户\我\应用程序数据\漫游\故宫\ 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”分支。
对于有同样问题的人,稍后会发现:我最好的解决办法是运行以下命令:
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/
删除纸浆的caching版本并再次下载(即上述命令)解决了这个问题。
好的,事实certificate,我错过了bower
和/或jshint
。 大家可能已经安装了这些软件包,因为它们很常见。
我大致解决了这个问题:
npm uninstall -g pulp npm install -g bower npm install -g jshint npm install -g pulp
我最好的猜测是一些后安装脚本失败。 不幸的是,我再也不能重现这个问题了。 即使在卸载node.js之后,删除%HOME%\AppData\Roaming
的文件夹并从头开始重新安装所有内容: pulp
现在就起作用了。