Giter Club home page Giter Club logo

npm-package-privatify's Introduction

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: 本工具区分了版本,自动处理了此问题

npm-package-privatify's People

Contributors

zxyue25 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.