githbq / npm-package-privatify

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npm-package-privatify

说明

一个将私有源npm包处理为离线包的自动化工具

使用

安装

npm install -g npm-package-privatify

1、privatify package <package-name> [scope]

将所声明的npm包package处理为离线包,并查找离线包package子包依赖是否包含scope下的子包,如包含也处理为离线包

scope匹配规则:https://www.npmjs.com/package/minimatch

参数:

<package-name>:npm包名

// 将packageName处理为私包
privatify package packageName

执行成功后,有两处变化:

(1)本工程package.json

// 修改前
...
"dependencies|| devDependencies": {
    "packageName": "^0.3.29",
},
// 修改后
...
"dependencies|| devDependencies": {
    "packageName": "file:private/packageName-${version}.tar.gz",
},

(2)路径private下新增文件packageName-${version}.tar.gz

[scope]:查找包是否存在scope下的依赖,有则会处理子包私有包

privatify package @scope1/packageName @scope1

执行成功后,除了跟上述一样有两处变化,如果子包有依赖scope下的私有包,还有两处变化:

(3)private/@scope1/packageName下的package.json文件

// 修改前
...
"dependencies|| devDependencies": {
    "@scope1/subPackageName": "^0.3.29",
},
// 修改后
...
"dependencies|| devDependencies": {
    "@scope1/subPackageName": "file:../../private/@scope1/packageName-${version}.tar.gz",
},

(4) 路径private/@scope1下新增文件subPackageName-${version}.tar.gz


2、privatify scope <scope>

提供快捷操作,将所声明作用域下的私有包统一处理为离线包,查找包是否存在scope下的依赖,有则会处理子包私有包

参数:

<scope>:要查找的作用域

scope匹配规则:https://www.npmjs.com/package/minimatch

// 将在@scope1下的私有包处理为私包
privatify scope @scope1

3、privatify create <registry-name>

创建一个npm私服仓库

参数:

<registry-name>:私服仓库名称


实现流程

example

常见问题

Q: 多个子包依赖包中依赖同一个私有包,但是版本不一样?

A: 本工具区分了版本,自动处理了此问题

About


Languages

Language:TypeScript 95.3%Language:Shell 3.5%Language:JavaScript 1.1%