git clone https://github.com/mjackson/unpkg.git
# 安装依赖
npm install
or
yarn install
在package.json的script添加start命令:
"scripts": {
"build": "rollup -c",
...
"watch": "rollup -c -w",
"start":"export NODE_ENV=production && export PORT=5080 && node server.js"
},
执行编译命令:
npm run build
unpkg添加私库支持
根目录新建npmConfig.js来存放私库包的命名空间:
//存放私库包的命名空间
export const scopes = [
'@xianzou','@lijq'
];
/****
* 私库地址,代理端口会解析url的端口号
* const privateNpmRegistryURLArr = privateNpmRegistryURL.split(":");
* const privateNpmPort = privateNpmRegistryURLArr[privateNpmRegistryURLArr.length - 1]
* 拉取一些npm的包会返回302的情况,unpkg暂时没有处理,会不会和本地的npm源有关?
***/
export const privateNpmRegistryURL = 'http://192.168.0.77:7788';
//互联网npm地址
export const publicNpmRegistryURL = 'https://registry.npmmirror.com/';
export default scopes;
接下来就是修改修改modules/utils/npm.js文件了,思路大概如下:
私库地址为http,需要修改https为http;
设置我们私库的端口;
根据npmConfig.js中的scopes去匹配unpkg请求的包,如果是私库的包,就走内网的npm源,如果没有匹配到,就走互联网npm地址;
预览npm.js源码
修改npm.js完毕之后,执行npm run build重新生成server.js文件,然后启动服务:npm run start
以服务形式启动
unpkg.service
[Unit]
Description=Unpkg server
After=network.target
[Service]
WorkingDirectory=/opt/unpkg
ExecStart=/opt/npm/node-v16.15.0-linux-x64/bin/npm run start
Restart=on-failure
[Install]
WantedBy=multi-user.target