1.0.0 • Published 4 months ago
anixuil-js-tool v1.0.0
开发文档
工具库的开发文档
初始化项目
mkdir anixuil-js-tool # 创建项目文件夹
cd anixuil-js-tool # 进入项目目录
pnpm init # 初始化项目
下载对应的依赖
pnpm i typescript rollup rollup-plugin-dts @rollup/plugin-commonjs @rollup/plugin-alias rollup-plugin-esbuild rollup-plugin-typescript2 @rollup/plugin-babel @babel/core esbuild @rollup/plugin-node-resolve @rollup/plugin-json typedoc -D
一、rollup配置
根目录创建rollup.config.ts
/*
* @Author: Anixuil
* @Date: 2023-12-31 11:09:50
* @LastEditors: Anixuil
* @LastEditTime: 2023-12-31 12:22:23
* @Description: rollup配置文件
*/
import dts from "rollup-plugin-dts";
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import alias from "@rollup/plugin-alias";
import esbuild from "rollup-plugin-esbuild";
import typescript from "rollup-plugin-typescript2";
import babel from "@rollup/plugin-babel";
const entries = ["src/index.ts"];
const plugins = [
babel({
babelrc: false,
babelHelpers: "bundled",
presets: [["env", { modules: false }]],
}),
resolve({
preferBuiltins: true,
}),
alias(),
json(),
commonjs(),
typescript({
tsconfigOverride: {
compilerOptions: {
declaration: false,
declarationMap: false,
},
},
}),
esbuild({
minify: true,
target: "ESNext",
tsconfig: "tsconfig.json",
}),
];
export default [
...entries.map((input) => ({
input,
output: [
{
file: input.replace(/src/, "dist/").replace(/\.ts$/, ".mjs"),
format: "esm",
},
{
file: input.replace(/src/, "dist/").replace(/\.ts$/, ".cjs"),
format: "cjs",
},
],
external: [],
plugins,
})),
...entries.map((input) => ({
input,
output: {
file: input.replace(/src/, "dist/").replace(/\.ts$/, ".d.ts"),
format: "esm",
},
external: [],
plugins: [dts({ respectExternal: true })],
})),
];
1.0.0
4 months ago