使用gitlab 使用npm 私有包

374 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

1. npm init 生成package.json

2. package.json

   {
     "name": "tool",//包名
     "version": "1.0.6", // 版本
     "main": "index.js", // 入口 require这个包 导出的内容 
     "bin": {
       "upload-cli": "index.js" // 定义可执行命令
     },
     "scripts": {
       "test": "node index.js test",
       "postversion": "git push && git push --tags" // 打完版本后执行的钩子
     },
     "repository": {
       "type": "git",
       "url": "git@git.aa.com:tool/tool.git"
     },
     "author": "",
     "license": "ISC",
     "dependencies": {
       "xxx": "^0.5.0"
     }
   }

3. 如果是普通包 在index.js中导出内容即可 module.exports

4. 如果包含可执行命令 则要在package.json 中的bin定义命令

5. 开发完成后使用npm version xxx 打版本 主要有三种如下(初始版本:0.0.0):

  • npm version patch 小版本号加一 0.0.1
  • npm version minor 中版本号加一 0.1.0
  • npm version major 主版本号加一 1.0.0
  • 其他参数 见 npm help version。npm version xxx会打一个tag如:v0.1.0并且会更新package.json的version如:0.1.0

6. 通过gitlab使用

   {
       "scripts": {
           "upload": "command param", // 定义bin才可以当命令使用
       },
       "devDependencies": {
           "command": "git+ssh://git@git.aa.com:tool/tool.git",
       },
   }

7. 安装

  • 第一次安装 npm i 或者 cnpm i
  • 更新 npm i aa-tool 或者 cnpm i aa-tool

8. 关于版本

  • 直接使用 "git+ssh://....git" 会安装master分支的最新代码(cnpm 会安装最新的version,所以有更改都要打版本)
  • 指定版本或者commit "git+ssh://....git#v0.0.1"
  • 指定语义化版本semver "git+ssh://...git#semver:^0.0.1" (cnpm 不支持)

9. 参考文档