安装依赖 yarn add -D rollup rollup-plugin-node-resolve rollup-plugin-commonjs rollup-plugin-json rollup-plugin-alias
添加 rollup.config.js 文件 /rollup.config.js
安装 typescript 依赖 yarn add -D typescript
添加 tsconfig 配置文件 /tsconfig.json
安装 babel 依赖 yarn add -D rollup-plugin-babel@latest @babel/core @babel/preset-env @babel/preset-typescript
添加 .babelrc 配置文件
{
"presets" : [
"@babel/preset-env" ,
"@babel/preset-typescript"
]
}
添加 package.json 配置文件 /package.json
安装依赖
# 安装 eslint
yarn add -D eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
# 安装 prettier
yarn add -D prettier
# 安装 husky、lint-staged
yanr add -D husky lint-staged
配置 eslint 规则 /.eslintrc.js
/.prettierrc
配置 husky 和 lint-staged
"scripts": {
"lint": "eslint 'lib/**/*.{js,ts}'"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*./lib/**/*.{js,ts,json,css,less,md}": [
"prettier --write",
"yarn lint"
]
}
rimraf - 文件删除工具,用于每次编译前清空 lib 目录
npm-run-all - npm 命令并行执行工具
rollup-plugin-uglify - uglify js 压缩工具(rollup 版)
lodash.merge - 配置合并工具
cross-env - 跨平台设置环境变量
安装依赖 yarn add -D rimraf npm-run-all rollup-plugin-uglify lodash.merge
yarn add cross-env
修改 package.json
"scripts": {
"lint": "eslint 'lib/**/*.{js,ts}'",
"dev": "cross-env FORMAT=esm rollup -w -c",
"build:esm": "cross-env FORMAT=esm rollup -c",
"build:umd": "cross-env FORMAT=umd rollup -c",
"build:min": "cross-env FORMAT=min rollup -c",
"build": "rimraf lib/* && run-p build:esm build:umd build:min"
},
添加 Shebang: "#!/usr/bin/env node"
编写 rollup 插件, 使用 renderChunk hooks 添加 shebang,解决 eslint 报错 /lib/plugins/banner.js
使用
// in rollup.config.js
plugins: [
banner()
]