我正在编写一个模块将运行一个"脚本"这样的财产:
"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.js
和bin/mymodule.js
文件。
答案 0 :(得分:2)
查找使用您的模块的项目的根路径。有几种方法可以做到这一点,每种方法都有其优点和缺点:Determine project root from a running node.js application
一旦有了这条路径,您只需require(path.join([rootPath, 'package.json']))
并检查内容即可找到设置。
答案 1 :(得分:0)
这样的事情对你有用吗?
var pjson = require('../package.json');
console.log(pjson.forMyModule);