2.0.7 • Published 3 years ago
tnpm-bridge v2.0.7
背景
腾讯内网的 npm 源站,外部同学无法访问。 在项目架构使用了一些内网包的情况下,合作的外部服务商同学无法使用 npm 进行包的下载安装,造成协作困难。
tnpm-bridge 使用方式
1、新建 script 命令
"scripts": {
"inner-install": "npm install tnpm-bridge -D && node ./tools/innerInstall.js",
"outer-install": "npm install tnpm-bridge -D && node ./tools/outerInstall.js",
}
2、新建 node 文件
假设,我们将新文件创建在 tools 文件夹下。
tools/innerInstall.js
const path = require('path');
const { tnpmInstall } = require('tnpm-bridge');
// 内网包安装路径(node_modules下)
const sourceFolderPath = path.resolve(
__dirname,
'../../../node_modules/@tencent',
);
// 期望复制到的 src 目录路径(根据你的项目实际情况填写)
const destFolderPath = path.resolve(__dirname, '../lib/@tencent');
// 调用 tnpm-bridge 提供的 tnpmInstall 方法。内部同学可一键完成所有 npm 包安装 + tnpm 包的 src 同步
tnpmInstall(sourceFolderPath, destFolderPath);
tools/outerInstall.js
const path = require('path');
const { npmInstall } = require('tnpm-bridge');
// 内网包所在的 src 目录路径(根据你的项目实际情况填写)
const sourceFolderPath = path.resolve(__dirname, '../lib/@tencent');
// node_modules 的路径
const destFolderPath = path.resolve(
__dirname,
'../../../node_modules/@tencent',
);
// 当前项目的 package.json 路径
const pkgPath = path.resolve(__dirname, '../../../package.json');
// 当前项目的 package.json
const pkg = require(pkgPath);
// 调用 tnpm-bridge 提供的 npmInstall 方法。外部同学可一键完成所有 npm 包安装 + src 下 tnpm 包同步到 node_modules
npmInstall(sourceFolderPath, destFolderPath, pkg, pkgPath);
3、开始使用
1)内部同学
clone 项目后,使用
npm run inner-install
或
yarn inner-install
进行 npm 包安装。
2)外部同学
clone 项目后,使用
npm run outer-install
或
yarn outer-install
进行 npm 包安装。
注意
当前解决方案,要求内外部同学严格按照上述步骤进行操作,不再单独使用 npm install 或 yarn 的方式,进行包安装。
方案思路
内部同学
在内网环境下,下载 @tencent/* 内网包。 下载到 node_modules 后,将内网包同步到项目 src 目录下。
外部服务商同学
在外网环境下,使用 git 拉取回 src 下的内网包,再将内网包复制到 node_modules 下。
注意点
1、内部同学将内网包同步到 src 下后,编译打包时,注意合理处理 src 下的内网包。特别对于小程序,注意不要将 src 下的内网包复制到小程序发布包中,导致包体积过大。
2、外部同学不可再使用 npm install 或 yarn 的方式,进行包安装,因为 package.json 中含有腾讯内网包声明,直接安装会报错。
2.0.3
3 years ago
2.0.2
3 years ago
2.0.5
3 years ago
2.0.4
3 years ago
2.0.7
3 years ago
2.0.6
3 years ago
1.0.10
3 years ago
2.0.1
3 years ago
2.0.0
3 years ago
1.0.9
3 years ago
1.0.8
3 years ago
1.0.7
3 years ago
1.0.6
3 years ago
1.0.5
3 years ago
1.0.4
3 years ago
1.0.3
3 years ago
1.0.2
4 years ago
1.0.1
4 years ago
1.0.0
4 years ago
0.0.2
4 years ago
0.0.1
4 years ago