Npm 中快照版本的解决方法

Workaround for snapshot versions in Npm

在网上搜索模拟 Npm 中 Maven 快照版本行为的解决方案后,我进行了一些测试并找到了适合我的解决方法。

如果你愿意,我希望你能给我一些反馈,如果你知道任何其他可能的解决方法,或者如果我在这个问题上遗漏了什么,请告诉我。

我看到的唯一缺点是必须在 node_modules 文件夹中检查已安装依赖项的实际版本,因为我使用 npm update --no-save 以避免替换我在 package.json 安装或更新后。

你可以在我的 github.

中找到代码和文档

Npm 快照的解决方法

发布和使用快照版本

图书馆:

  1. 仅在第一个项目设置中)将 package.json 中的版本设置为:
    "version": "0.0.0-snapshot.0"
    
  2. 使用这些命令发布快照并标记为 快照
    "scripts": {
        "publish:snapshot": "npm run version:snapshot && npm publish --tag snapshot",
        "version:snapshot": "npm version prerelease --preid snapshot"
    }
    
  3. 检查快照编号是否在 package.json
  4. 中递增

申请:

  1. (仅在第一个项目设置中)删除package-lock.jsonnpm install
  2. 在开发中设置对快照版本的依赖:
    "dependencies": {
        "npm-test-lib-a": ">=0.0.0-snapshot.0"
    }
    
  3. 要获取最新的快照版本,请使用此命令:
    npm update <package> --no-save
    
  4. 要查看实际安装的版本,请参阅 node_modules

发布和使用发布版本

图书馆:

  1. 使用这些命令发布版本并标记为最新
    "scripts": {
        "publish:release": "npm run version:release && npm publish",
        "version:release": "npm version 1.0.0"
    }
    
  2. 发布版本后始终将版本设置回 快照

申请:

  1. 要获取最新版本,请使用 npm install:
    npm install <package>
    
  2. 要查看实际安装的版本,请参阅 node_modules

非常感谢!

到目前为止,最接近的行为可能是 Workspaces in Npm 7