gpt4 book ai didi

node.js - npm 包和模块中的版本号

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:17 27 4
gpt4 key购买 nike

我正在编写一个 npm 包,其中包含模块和命令行可执行文件。 npm 包 has a version

我希望我的模块了解此版本,以便我可以从 my_executable -v 报告它,并在输出中使用它(例如“由 MyPackage v1.3.2 生成”)。但是,我不想在两个地方(在我的模块和我的 package.json 中)键入相同的版本号,因为在某些时候我肯定会搞砸并忘记更新一个或另一个。我怎样才能……

  • …从我的模块中导出版本,并让 package.json 从我的模块中读取版本?
    • 使用 Ruby gem,我可以做到这一点,因为 gemspec 文件是纯 Ruby 代码,可以加载模块并从派生代码填充参数。我认为 npm/package.json 不可能吗?
  • …或者,从我的模块中读取 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

最佳答案

您可以从 package.json 中提取软件包的版本,如下所示:

let pkg = require('./package.json');

访问pkg.version以获取版本,例如:

console.log(pkg.version);

如果package.json与您正在执行的文件不在同一目录中:

let pkg = require(__dirname + '/path/to/package.json')

关于node.js - npm 包和模块中的版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44725566/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com