package.json中的依赖项"/>
package.json中的依赖项
在我的节点项目中,我以main.js作为入口点在文件夹中构建独立的模块,并在与其他文件相同的文件夹中找到该模块的帮助程序。
Ex:
Aggregator:
|___package.json
|___main.js
|___node_modules
|_____helper1.js
|_____helper2.js
因此,节点将解决本地node_modules
文件夹中模块[Ex:Aggregator]的所有助手依赖性。以上结构的原因是,我不需要关心require
[require
用于聚合器时,我使用package.json来指定入口点是main.js
Ex:
//Sample.js
require('Aggregator'); // Resolves to Aggregator/main.js
例如:聚合器模块的package.json
{
"name": "Aggregator"
, "description": "Returns Aggregates"
, "keywords": ["aggregate"]
, "author": "Tamil"
, "contributors": []
, "dependencies": {
"redis": "0.6.7"
}
, "lib" : "."
, "main" : "./main.js"
, "version" : "1.0"
}
这里的依赖项列是什么?我提到了this链接。即使我在没有任何警告的情况下将redis的版本指定为10000,我的代码似乎也可以工作。我尝试从项目中删除我的redis模块,以测试节点是否选择了它并解决了依赖性,但没有。什么时候在package.json中使用该依赖项属性?只是注释,以备将来参考吗?
npm版本1.1.0-beta-4;节点版本v0.6.6
回答如下:dependencies
值用于指定给定模块(由package.json
表示)需要工作的任何其他模块。当从给定模块的根文件夹中运行npm install
时,它将安装该dependencies
哈希中列出的所有模块。
如果您在其中列出的redis: 10000
没有遇到任何错误,我想您永远不会运行npm install
,因此它甚至也从未尝试安装Redis。反过来,如果您的代码在没有运行npm install
的情况下仍能正常工作,则很可能您的代码甚至一开始甚至不需要redis,因此应从dependencies
哈希中删除该项目。
虽然不是package.json
中的每个条目对于理解日常开发都是必不可少的,但要意识到dependencies
绝对重要。我建议您通读dependencies section on the npm website。
更多推荐
package.json中的依赖项
发布评论