Tam*_*mil 8 package node.js npm
在我的节点项目中,我将独立模块构建到文件夹中,并将main.js作为入口点,并在与不同文件相同的文件夹中找到该模块的帮助程序.
Ex:
Aggregator:
|___package.json
|___main.js
|___node_modules
|_____helper1.js
|_____helper2.js
Run Code Online (Sandbox Code Playgroud)
因此,node将从本地node_modules文件夹解析所有帮助程序对模块[Ex:Aggregator]的依赖性.以上结构的原因是,我不需要关心路径require
我使用package.json来指定入口点是main.js require,用于Aggregator
Ex:
//Sample.js
require('Aggregator'); // Resolves to Aggregator/main.js
Run Code Online (Sandbox Code Playgroud)
例如:Aggregator模块的package.json
{
"name": "Aggregator"
, "description": "Returns Aggregates"
, "keywords": ["aggregate"]
, "author": "Tamil"
, "contributors": []
, "dependencies": {
"redis": "0.6.7"
}
, "lib" : "."
, "main" : "./main.js"
, "version" : "1.0"
}
Run Code Online (Sandbox Code Playgroud)
这里的依赖列是什么?我提到了这个链接.即使我将redis的版本指定为10000而没有任何警告,我的代码似乎也能正常工作.我尝试从项目中删除我的redis模块,以测试节点是否接收它并解决依赖性,但事实并非如此.何时在package.json中使用该依赖属性?这只是一张备注供将来参考吗?
npm版本1.1.0-beta-4; 节点版本v0.6.6
jma*_*777 10
该dependencies值用于指定给定模块(由其表示package.json)需要工作的任何其他模块.当您npm install从给定模块的根文件夹运行时,它将安装该dependencies哈希中列出的所有模块.
如果你没有redis: 10000在其中列出任何错误,我的猜测是你从未运行过npm install,因此它甚至从未尝试过安装redis.反过来,如果您的代码在没有运行的情况下工作正常npm install,则很可能您的代码首先不需要redis,并且该项应该从dependencies哈希中删除.
虽然不是每个条目package.json对于理解日常开发都是必不可少的,但dependencies重要的是要注意.我建议阅读npm网站上的依赖项部分.
| 归档时间: |
|
| 查看次数: |
10365 次 |
| 最近记录: |