Skip to content

Loloao/ts-pro-library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  • .gitignore生成此文件
  • 如果想直接用 node 的 api 请npm i @types/node
  • jest是 js 库,ts 需要npm i jest ts-jest @types/jest
  • husky直接在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

About

A micro library written from scrath to take advantage of the power of TypeScript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published