【发布时间】:2017-06-29 21:28:31
【问题描述】:
我正在创作一个具有模块和命令行可执行文件的 npm 包。 npm 包has a version。
我希望我的模块知道这个版本,以便我可以从my_executable -v 报告它,并在输出中使用它(例如“由 MyPackage v1.3.2 生成”)。但是,我不想在两个地方(在我的模块和我的package.json)输入相同的版本号,因为在某些时候我肯定会搞砸并忘记更新一个或另一个。我怎么能……
- …从我的模块中导出版本,并让
package.json从我的模块中读取版本?- 使用 Ruby gem 我可以做到这一点,因为
gemspec文件是纯 Ruby 代码,可以加载模块并从派生代码填充参数。我认为这对于 npm/package.json 是不可能的?
- 使用 Ruby gem 我可以做到这一点,因为
- …或者,从我的模块中读取
package.json中指定的版本?package.json是否保证与我的模块一起安装在已知位置?我要怎么拉进去?手动读取 JSON 并解析它?
编辑:一个简单的let pkg = require('./package.json') 在我的情况下不起作用,因为我的项目文件结构:
mypackage/
bin/myexecutable # uses require('../lib/mymodule.js')
lib/mymodule.js # needs to load package.json
package.json
【问题讨论】: