2016-08-09 37 views
1

我正在寫一個模塊會從一個「腳本」屬性像這樣運行:有沒有辦法從npm運行的模塊中獲取package.json屬性?

"scripts": { 
    "runMyModule": "mymodule -stuff stuff" 
} 

注意:這不是我的模塊package.json。這是用戶用來運行npm的package.json

我希望讓他們的屬性添加到主package.json文件(在命令行中,他們通過npm run runMyModule執行),這我模塊將讀取。這可能嗎?

我想是這樣的:

"forMyModule": { 
    stuff: [ 
     "one", 
     "two" 
    ] 
}, 

"scripts": { 
    "runMyModule": "mymodule -stuff stuff" 
} 

是否有可能在我的模塊來獲取forMyModule.stuff

我已經創建了index.jsbin/mymodule.js文件。

回答

2

找到使用您的模塊的項目的根路徑。有幾種方法可以做到這一點,各有其優缺點:Determine project root from a running node.js application

一旦你的路,你可以簡單地require(path.join([rootPath, 'package.json']))和檢查內容,以查找設置。

+0

謝謝。我用鏈接和你的建議代碼來使用'var settings = require(process.cwd()+「/package.json」);' –

0

會這樣的東西適合你嗎?

var pjson = require('../package.json'); 
console.log(pjson.forMyModule); 
+0

即使全球安裝,這項工作是否可行? –

+0

我相信嗎?全局安裝的模塊在node_modules /目錄內具有相同的目錄佈局,只是具有不同的路徑(全局)前綴。 –

相關問題