.gitignore生成此文件- 如果想直接用 node 的 api 请
npm i @types/node jest是 js 库,ts 需要npm i jest ts-jest @types/jesthusky直接在package.json中设置precommit,比如"precommit": "npm run test"lint-stage将文件进行prettier的库,在package.json中配置
"lint-staged": {
"src/**/*.ts": [
"prettier --write --no-semi --single-quote --trailing-comma es5", // --write 将会覆写 running 的文件
"git add" // 只在 add 后的文件进行 prettier
}
]
// 在 commit 前进行 prettier
"precommit": "npm run test && lint-staged"- rollup 用于打包库,
npm i rollup rollup-plugin-sourcemaps,在 package.json 中进行配置
{
"prebuild": "rm -rf dist && rm -rf build",
"build": "tsc -p tsconfig.json && rollup -c rollup.config.js"
}rollup 通过rollup.config.js进行配置
const packageJSON = require('./package.json')
const sourceMaps = require('rollup-plugin-sourceMaps')
export default {
// 像 webpack 一样,它有一个入口文件
input: 'dist/index.js',
output: {
file: packageJSON.main,
format: 'umd',
name: 'typescriptProLibraryProject',
sourcemap: true,
},
}使用 rollup 时需要设置ts.config.json,使其输出 esModule,如果是其他 module 形式比如commonjs,则 rollup 依然会保留 ts 所做的兼容代码"module": "es2015"
- 如果想要 publish 库到 npm 需要在
package.json中加上"files": ["build"],但此时build文件夹中没有类型声明文件,所以可以在package.json中将类型声明文件在build命令执行完之后移动到build文件夹中"postbuild": "cp dist/*.d.ts build/" package.json中的命令加上pre前缀则会在对应命令之前执行一次,加上post则会在对应命令后执行一次- 发布后的库需要配置类型声明文件,在
package.json中配置"types": "build/index.d.ts"即打包后的类型声明文件路径 - 在
package.json中配置"collectCoverage": true可以输出单元测试覆盖率 - 在
package.json中配置"collectCoverageFrom": ["src/**/*.ts"]可以设置单元测试覆盖率的总文件 - 在
package.json中配置"coverageThreshold": { "global": { //各项配置 }}可以设置覆盖率的门槛,如果没达到则会显示 error