{
"name": "",
"version": "0.4.0",
"type": "module",
"description": "",
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"exports": {
"./*": "./*",
".": {
"browser": "./dist/index.module.js",
"import": "./dist/index.mjs",
"require": "./dist/index.js"
}
},
"files": [
"dist"
],
"sideEffects": false,
"scripts": {
"fix": "eslint ./**/* --format stylish --fix",
"dev": "rimraf dist && rollup -w -c ./rollup/dev.config.js",
"build": "rimraf dist && rollup -c ./rollup/prod.config.js"
},
"devDependencies": {
"@babel/preset-env": "^7.18.6",
"@rollup/plugin-commonjs": "^22.0.1",
"@rollup/plugin-node-resolve": "^13.3.0",
"@rollup/plugin-replace": "^4.0.0",
"@typescript-eslint/eslint-plugin": "^5.28.0",
"@typescript-eslint/parser": "^5.28.0",
"eslint": "^8.20.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-plugin-import": "^2.26.0",
"rimraf": "^3.0.2",
"rollup": "^2.77.0",
"rollup-plugin-dts": "^4.2.1",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.31.1",
"typescript": "^4.7.4"
}
}
babel.config.js
module.exports = {
presets: ['@babel/preset-env'],
};
.npmrc
shamefully-hoist=true
prefer-offline=true
{
"root": true,
"env": {
"es6": true,
"browser": true
},
"parserOptions": {
"ecmaVersion": 2018
},
"plugins": [
"@typescript-eslint"
],
"globals": {
"window": true,
"document": true
},
"extends": [
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"airbnb-base"
],
"ignorePatterns": [
"node_modules/**",
"playgrounds/**",
"rollup/**",
"dist/**",
"src/types/**"
],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.d.ts"],
"parserOptions": {
"project": ["tsconfig.json"]
}
},
{
"files": ["rollup/**"],
"parserOptions": {
"sourceType": "module"
},
"rules": {
"no-console": "off"
}
},
{
"files": ["src/**/*"],
"rules": {
"import/no-unresolved": "off",
"import/extensions": ["error", {
"ignorePackages": true,
"typescript": "never"
}],
"no-param-reassign": ["off"]
}
}
]
}
{
"compilerOptions": {
"sourceMap": true,
"alwaysStrict": false,
"declaration": true,
"declarationMap": true,
"downlevelIteration": true,
"importHelpers": true,
"inlineSources": true,
"isolatedModules": true,
"lib": ["es6", "dom"],
"moduleResolution": "node",
"noEmitHelpers": true,
"noErrorTruncation": true,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noImplicitUseStrict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"preserveWatchOutput": true,
"strictBindCallApply": false,
"strict": true,
"target": "es6",
"types": ["node"],
},
"include": ["src/**/*"]
}
root = true
[*]
indent_size = 2
indent_style = space
charset = utf-8
end_of_line = lf
import common from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import typescript from 'rollup-plugin-typescript2';
const onwarn = (msg, warn) =>
!/Circular|preventAssignment/.test(msg) && warn(msg);
export default [
{
input: 'src/index.ts',
output: {
file: 'xxx', // 在开发的时候可以直接把测试包打到目标测试的项目里
format: 'esm',
},
plugins: [resolve(), common(), typescript()],
onwarn,
},
];
import dts from 'rollup-plugin-dts';
import common from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import typescript from 'rollup-plugin-typescript2';
import { terser } from 'rollup-plugin-terser';
export default [
{
input: 'src/index.ts',
output: {
file: 'dist/index.js',
format: 'cjs',
exports: 'default'
},
plugins: [resolve(), common(), typescript(), terser()],
},
{
input: 'src/index.ts',
output: [
{
file: 'dist/index.mjs',
format: 'esm',
},
],
plugins: [resolve(), common(), typescript(), terser()],
},
{
input: 'src/index.ts',
output: [
{
file: 'dist/index.module.js',
format: 'es',
},
],
plugins: [resolve(), common(), typescript(), terser()],
},
{
input: 'src/index.ts',
output: [
{
file: 'dist/index.d.ts',
format: 'es',
},
],
plugins: [dts()],
},
];