在我的節點projcet中,我使用main.js作爲入口點將獨立模塊構建到文件夾中,並在與不同文件相同的文件夾中找到該模塊的helpers。什麼是package.json中的依賴關係 - nodejs
Ex:
Aggregator:
|___package.json
|___main.js
|___node_modules
|_____helper1.js
|_____helper2.js
因此節點將解決所有我的助手的模塊[例:聚合]依賴當地node_modules
文件夾。原因上面的結構是,我並不需要關心的道路上require
我用的package.json指定入口點是main.js櫃面require
是聚集
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 version 1.1.0-beta-4; 節點版本v0.6.6
現在很清楚:) Nice Catch :) – Tamil
那麼,爲我們構建的本地模塊使用package.json是否是不必要的或不可取的?因爲如果我在我的項目文件夾中運行'npm install',它會引發錯誤,因爲它們確實不是在任何地方找到的包,而只是我的本地代碼,因此依賴關係未解決。我的意思是Aggregator不是一個包,而是由我構建的模塊,它依賴於redis。那麼如何解決它們呢? – Tamil
對於本地開發的模塊的已發佈依賴項,使用'package.json'仍然是可取的。但是,如果你需要在另一個本地開發的模塊中使用本地開發的模塊,你可以選擇一些選項,其中最好的選項通常是使用'npm link'。使用'npm link',你可以進入* ModuleA *的根文件夾,只需輸入'npm link'。然後從* ModuleB *的根文件夾中,輸入'npm link module-a-name'。然後從* ModuleB *的任何地方開始,你可以簡單地'require('module-a-name')',就像你已經安裝在node_modules中一樣(即使它不是)。 – jmar777