1{2 "name": "",3 "version": "0.4.0",4 "type": "module",5 "description": "",6 "main": "dist/index.js",7 "module": "dist/index.mjs",8 "types": "dist/index.d.ts",9 "exports": {34 collapsed lines10 "./*": "./*",11 ".": {12 "browser": "./dist/index.module.js",13 "import": "./dist/index.mjs",14 "require": "./dist/index.js"15 }16 },17 "files": [18 "dist"19 ],20 "sideEffects": false,21 "scripts": {22 "fix": "eslint ./**/* --format stylish --fix",23 "dev": "rimraf dist && rollup -w -c ./rollup/dev.config.js",24 "build": "rimraf dist && rollup -c ./rollup/prod.config.js"25 },26 "devDependencies": {27 "@babel/preset-env": "^7.18.6",28 "@rollup/plugin-commonjs": "^22.0.1",29 "@rollup/plugin-node-resolve": "^13.3.0",30 "@rollup/plugin-replace": "^4.0.0",31 "@typescript-eslint/eslint-plugin": "^5.28.0",32 "@typescript-eslint/parser": "^5.28.0",33 "eslint": "^8.20.0",34 "eslint-config-airbnb-base": "^15.0.0",35 "eslint-plugin-import": "^2.26.0",36 "rimraf": "^3.0.2",37 "rollup": "^2.77.0",38 "rollup-plugin-dts": "^4.2.1",39 "rollup-plugin-terser": "^7.0.2",40 "rollup-plugin-typescript2": "^0.31.1",41 "typescript": "^4.7.4"42 }43}
babel.config.js
1module.exports = {2 presets: ['@babel/preset-env'],3};
.npmrc
1shamefully-hoist=true2prefer-offline=true
1{2 "root": true,3 "env": {4 "es6": true,5 "browser": true6 },7 "parserOptions": {8 "ecmaVersion": 20189 },48 collapsed lines10 "plugins": [11 "@typescript-eslint"12 ],13 "globals": {14 "window": true,15 "document": true16 },17 "extends": [18 "plugin:@typescript-eslint/eslint-recommended",19 "plugin:@typescript-eslint/recommended",20 "airbnb-base"21 ],22 "ignorePatterns": [23 "node_modules/**",24 "playgrounds/**",25 "rollup/**",26 "dist/**",27 "src/types/**"28 ],29 "overrides": [30 {31 "files": ["*.ts", "*.tsx", "*.d.ts"],32 "parserOptions": {33 "project": ["tsconfig.json"]34 }35 },36 {37 "files": ["rollup/**"],38 "parserOptions": {39 "sourceType": "module"40 },41 "rules": {42 "no-console": "off"43 }44 },45 {46 "files": ["src/**/*"],47 "rules": {48 "import/no-unresolved": "off",49 "import/extensions": ["error", {50 "ignorePackages": true,51 "typescript": "never"52 }],53 "no-param-reassign": ["off"]54 }55 }56 ]57}
1{2 "compilerOptions": {3 "sourceMap": true,4 "alwaysStrict": false,5 "declaration": true,6 "declarationMap": true,7 "downlevelIteration": true,8 "importHelpers": true,9 "inlineSources": true,18 collapsed lines10 "isolatedModules": true,11 "lib": ["es6", "dom"],12 "moduleResolution": "node",13 "noEmitHelpers": true,14 "noErrorTruncation": true,15 "noFallthroughCasesInSwitch": true,16 "noImplicitReturns": true,17 "noImplicitUseStrict": true,18 "noUnusedLocals": true,19 "noUnusedParameters": true,20 "preserveWatchOutput": true,21 "strictBindCallApply": false,22 "strict": true,23 "target": "es6",24 "types": ["node"],25 },26 "include": ["src/**/*"]27}
1root = true2 3[*]4indent_size = 25indent_style = space6charset = utf-87end_of_line = lf
1import common from '@rollup/plugin-commonjs';2import resolve from '@rollup/plugin-node-resolve';3import typescript from 'rollup-plugin-typescript2';4 5const onwarn = (msg, warn) =>6 !/Circular|preventAssignment/.test(msg) && warn(msg);7 8export default [9 {9 collapsed lines10 input: 'src/index.ts',11 output: {12 file: 'xxx', // 在开发的时候可以直接把测试包打到目标测试的项目里13 format: 'esm',14 },15 plugins: [resolve(), common(), typescript()],16 onwarn,17 },18];
1import dts from 'rollup-plugin-dts';2import common from '@rollup/plugin-commonjs';3import resolve from '@rollup/plugin-node-resolve';4import typescript from 'rollup-plugin-typescript2';5import { terser } from 'rollup-plugin-terser';6 7export default [8 {9 input: 'src/index.ts',41 collapsed lines10 output: {11 file: 'dist/index.js',12 format: 'cjs',13 exports: 'default'14 },15 plugins: [resolve(), common(), typescript(), terser()],16 },17 18 {19 input: 'src/index.ts',20 output: [21 {22 file: 'dist/index.mjs',23 format: 'esm',24 },25 ],26 plugins: [resolve(), common(), typescript(), terser()],27 },28 29 {30 input: 'src/index.ts',31 output: [32 {33 file: 'dist/index.module.js',34 format: 'es',35 },36 ],37 plugins: [resolve(), common(), typescript(), terser()],38 },39 40 {41 input: 'src/index.ts',42 output: [43 {44 file: 'dist/index.d.ts',45 format: 'es',46 },47 ],48 plugins: [dts()],49 },50];