有没有办法从npm运行模块中的package.json属性?

时间:2016-08-09 23:18:00

标签: javascript json node.js 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 个答案:

答案 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);