搭建私有npm
常见的有
cnpm
\verdaccio
等
我们这里采用Verdaccio
环境准备
- CentOS (Linux 系列)
- yum | apt | wge …
- Nodejs
- npm
- Verdaccio
1. 安装Nodejs & npm
yum install -y nodejs npm
2. 安装 Verdaccio
npm install verdaccio -g
3. 启动 Verdaccio
# verdaccio 可直接启动
verdaccio
启动之后会看到如下👇🏻
warn --- config file - /root/verdaccio/config.yaml
(node:22955) Warning: Verdaccio doesn't need superuser privileges. don't run it under root
(Use `node --trace-warnings ...` to show where the warning was created)
(node:22955) Warning: Verdaccio doesn't need superuser privileges. don't run it under root
warn --- "crypt" algorithm is deprecated consider switch to "bcrypt". Read more: https://github.com/verdaccio/monorepo/pull/580
info --- plugin successfully loaded: verdaccio-htpasswd
info --- plugin successfully loaded: verdaccio-audit
warn --- http address - http://localhost:4873/ - verdaccio/5.13.0
启动成功了 !
-
配置文件:
config file - /root/verdaccio/config.yaml
-
访问路径
http://localhost:4873/
我们可以通过配置文件来改变默认端口
具体参考文档 👉🏻 link
- 这个时候我们已经可以访问到了
初始页面
但是这时候 终端不能断,所以我们要守护进程
守护进程
使用 pm2 守护进程 或者 直接 nohup 来进程常驻
npm install pm2 -g
or
nohup verdaccio >/root/verdaccio/verdaccio.log 2>&1 &
- ps: 还需要去开启 verdaccio 对应端口的安全组
发布一个测试包
touch .npmrc
vim .npmrc
next
registry = "http://47.114.102.165:20010/"
.npmrc 配置文件的优先级
- 项目配置文件: /project/.npmrc
- 用户配置文件:~/.npmrc
- 全局配置文件:$PREFIX/etc/npmrc
- npm 内置配置文件 /path/to/npm/npmrc
Rollup 构建SDK
Rollup
Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序。Rollup 对代码模块使用新的标准化格式,这些标准都包含在 JavaScript 的 ES6 版本中,而不是以前的特殊解决方案,如 CommonJS 和 AMD。ES6 模块可以使你自由、无缝地使用你最喜爱的 library 中那些最有用独立函数,而你的项目不必携带其他未使用的代码。ES6 模块最终还是要由浏览器原生实现,但当前 Rollup 可以使你提前体验。
Flow 👇🏻
- 打包构建
- 加载 额外资源 ( resolve )
- 转译 ES module
- Babel
- 输出 压缩、移除 console 等
- 发布脚本
本文旨在 Rollup 的构建过程介绍,和业务无关
install 化环境依赖
yarn add -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve
-
rollup
-
@rollup/plugin-commonjs // 转译
-
@rollup/plugin-node-resolve // 加载依赖
rollup.config.js
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import babel from '@rollup/plugin-babel'; // 转换babel
import {
terser } from 'rollup-plugin-terser' // 压缩代码
import pkg from './package.json';
export default [
{
input: 'src/index.js',
external: ['ms'],
output: [
{
file: `${
process.cwd()}/dist/