2014-09-26 77 views
0
var Backbone = require('backbone'); 

导致此错误:的NodeJS - 找不到模块骨干

module.js:340 
    throw err; 
     ^
Error: Cannot find module 'backbone' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (C:\Users\denman\workspace-nodejs\AFirstServer_NodeUpAndRunning\hello-world-server.js:6:16) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 

怎么能这样呢?

我通过npm install -g backbone

我甚至重新启动Eclipse和我的机器上安装骨干。

回答

3

默认情况下,节点不会加载全局安装的模块。您应该在项目的目录根目录中执行任何npm install -s,而不是全局安装它们。

试试这个。创建新项目的目录,改变它,然后:

npm init #this will create a package.json for your project 
npm install --save backbone # this will install backbone to the directory, and save it into your package.json as a dependency 

然后创建一个名为index.js该目录中的文件。把你的代码放在那里需要主干。然后从该目录运行node index.js,你会发现一切正常,骨干网可用。

这是good blog post on the subject

+0

嗯然后,当我安装在全球范围内时,表达如何工作,没有意义? – 2014-09-26 05:46:29

+0

当我运行“npm install --save backbone”时,我得到了一个警告:“没有存储库字段”...我的package.json文件没有定义这个字段...“repository”:“” – 2014-09-26 06:00:29

+0

当你的package.json中没有仓库字段时,npm会发出警告,但它不会引起任何问题。你可以[在这里阅读](https://www.npmjs.org/doc/files/package.json.html)了解可用的package.json字段以及每个期望的内容。至于为什么Express的作品为 – milkandtang 2014-09-26 18:17:55