我第一次搞乱Node.js并决定使用express创建一个简单的应用程序。我按照github中的说明操作了一个空目录,如下所示:
npm install -g express
express
npm install -d
node app.js
导航到localhost:3000
时出现以下错误:
Express
500 Error: Cannot find module './lib/jade'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at Object. (C:\dev\gravity_kata\node_modules\jade\index.js:4:5)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Module.require (module.js:354:17)
在node_modules\jade\lib
下查看时,我看到了所有Jade的库文件,但没有jade
文件夹。所以我在lib下创建了一个名为jade的文件夹,并将库文件移到那里,现在我的默认应用程序正常运行。
现在,看到我几乎没有使用Node.js和Express的经验我很确定我做错了什么。有没有人知道这里发生了什么?
修改
我潜入了玉代码。在Jade的index.js文件下,它需要lib\jade
并在lib文件夹下查找,没有jade.js
文件。嗯,这就是问题,但为什么jade.js文件丢失了?从npm中提取Jade source时,lib目录下有一个jade.js文件。我将lib文件夹从下载的源代码复制到我项目的Jade模块中,现在工作正常。
所以出于某种原因,npm并没有拉下jade.js文件。 packages.json
文件中的版本与我下拉的源0.21.0
相匹配。有人知道为什么会这样吗?
答案 0 :(得分:11)
cd到你的快递项目文件夹并运行“npm install”,这将安装所有依赖项
答案 1 :(得分:2)
这可能与您在全球范围内安装快递(-g
)这一事实有关,但npm install -d
是在本地完成的。尝试在全球范围内安装它们,或者我希望在本地安装它们:
sudo npm uninstall express -g
npm install express
npm install jade (or npm install -d)
答案 2 :(得分:2)
对我来说,在Windows上,玉版0.22.0修复了这个问题。
答案 3 :(得分:0)
确保所有模块require
都正确无误。 Javascript告诉你实际上是错的很有趣。尝试删除玉石模板行,然后看看会发生什么。
答案 4 :(得分:0)
我刚发现这个问题与jade模块的错误。看起来jade文件夹不是自动创建的(某种bug)。现在我通过重新安装玉来解决这个问题。之后,自动创建了玉文件夹。 使用 npm uninstall gulp-jade 然后再次安装gulp-jade