tnpm-bridge

2.0.7 • Public • Published

外部服务商合作模式下的腾讯内网包使用的解决方案。

背景

腾讯内网的 npm 源站,外部同学无法访问。 在项目架构使用了一些内网包的情况下,合作的外部服务商同学无法使用 npm 进行包的下载安装,造成协作困难。



快速开始

1、安装

全局安装:

npm install tnpm-bridge -g

局部安装:

npm install tnpm-bridge -D

2、使用 - 全局使用

请在你的项目的根目录下执行


腾讯内部同学使用


tb i --inner

tb i -i

【说明】
如上指令,默认安装项目 package.json 声明的所有包,并自动将 node_modules/@tencent 整个文件夹复制到项目 src/lib 目录下。


外部服务商同学使用


tb i --outer

tb i -o

【说明】
如上指令,默认安装
1)项目 package.json 声明的所有非腾讯内网包
2)src/lib/@tencent 中的腾讯内网包依赖的所有非腾讯内网包
并自动将 src/lib/@tencent 整个文件夹复制到 node_modules 目录下。


3、使用 - 局部使用

项目 package.json 添加:

  "scripts": {
    "inner": "tb i --inner",
    "outer": "tb i --outer"
  }


详细文档

1、支持指令

tnpm-bridge为安装包而生,仅支持 npm 的 install 与 i 指令。


tb install [options]

tb i [options]

2、配置文件

开发者可以在项目根目录下新建 .tnpmbridgerc.json 文件,自定义 @tencent 包的缓存位置。

例如:

{
  "libPath": "src/lib/my-lib"
}

tnpm-bridge 会将 @tencent 包,整体复制到 src/config/my-lib 下,即:src/config/my-lib/@tencent。

【注】
.tnpmbridgerc.json 目前仅支持 libPath 一个字段配置。使用配置文件,便于后续能力扩展。


3、支持参数

名称 含义 取值
-h 获取帮助信息 -
-v 获取版本号 -
--inner 指明你的身份为内部同学 -
-i --inner的简写 -
--outer 指明你的身份为外部同学 -
-o --outer的简写 -
--libPath 开发者自定义的 @tencent 包缓存路径,优先级高于.tnpmbridgerc.json中的配置 string
默认为 项目根目录/src/lib
--configPath .tnpmbridgerc.json配置文件存放位置 string
默认为项目根目录(即当前执行tb指令的位置)
--pkg 新增单个包时,用于指明安装的 @tencent 包名称,仅在 --inner/-i 时生效 string
如: @tencent/aegis-web-sdk


4、更多使用 Demo

4.1 自定义 @tencent 包存放位置

tb i -i --libPath src/lib/my-lib

tnpm-bridge 会将 @tencent 包,整体复制到 src/lib/my-lib 下,即:src/lib/my-lib/@tencent。


4.2 自定义配置文件存放位置

tb i -i --configPath config/.tnpmbridgerc.json

tnpm-bridge 会去根目录下的 config/.tnpmbridgerc.json 读取配置内容。


另外,你也可以自定义配置文件名称:

tb i -i --configPath config/.my-tnpmbridgerc.json

4.3 新增 @tencent 包

tb i -i --pkg @tencent/aegis-web-sdk

tnpm-bridge 会在安装完 @tencent/aegis-web-sdk 后,自动同步到项目的 src/lib 目录下(或开发者自定义的 libPath 下)


4.4 传入 npm install 原生支持的参数

有时候,单纯的 npm install 指令,可能无法满足你的安装需求。这时,你可以像使用原生 npm install 安装一样,给 tnpm-bridge 传入你需要的参数。

例如,你想执行:

npm install --force

使用 tnpm-bridge,你只要这样做:

tb i --inner --force

tb i --outer --force

【说明】
在 tb i -i 或 tb i -o 后面,你可以传入任意 npm install 原生支持的参数,但注意, tb i -i 或 tb i -o 指令,是必需的,不可被置换的。例如,你不可以省略 -i 或 -o 参数,直接执行 tb i --force。


方案思路

内部同学

在内网环境下,下载 @tencent/* 内网包。 下载到 node_modules 后,将内网包同步到项目 src 目录下。


外部服务商同学

在外网环境下,使用 git 拉取回 src 下的内网包,再将内网包复制到 node_modules 下。


注意点

1、内部同学将内网包同步到 src 下后,编译打包时,注意合理处理 src 下的内网包。特别对于小程序,注意不要将 src 下的内网包打包到小程序发布包中,导致包体积过大。

2、外部同学不可再直接使用 npm install 或 yarn 的方式,进行全部包安装,因为 package.json 中含有腾讯内网包声明,直接安装会报错。单个npm包安装可正常使用。

Package Sidebar

Install

npm i tnpm-bridge

Weekly Downloads

4

Version

2.0.7

License

MIT

Unpacked Size

371 kB

Total Files

10

Last publish

Collaborators

  • z_listening