模拟实现
2023年06月11日
一、实现
备注: 这部分只实现 mini-rollup
中的 初始化环境
1.1 安装依赖
首先新建目录rollupMini
,然后进入目录中执行 pnpm init
初始化,安装一些必要的依赖:
pnpm i magic-string -S
pnpm i @types/node tsup typescript typescript-transform-paths -D
-
magic-string
-
typescript-transform-paths
: 用于支持别名
1.2 目录结构
|-
|- package.json
|- tsconfig.json
1.3 构建脚本
在 package.json
中添加如下的构建脚本:
"scripts": {
"dev": "tsup ./src/rollup.ts --format cjs,esm --dts --clean --watch",
"build": "tsup ./src/rollup.ts --format cjs,esm --dts --clean --minify"
},
1.4 编译配置
新建tsconfig.json
,内容如下:
{
"compilerOptions": {
"target": "es2016",
"allowJs": true,
"module": "commonjs",
"moduleResolution": "node",
"outDir": "dist",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true,
"sourceMap": true,
"baseUrl": "src",
"rootDir": "src",
"declaration": true,
"plugins": [
{
"transform": "typescript-transform-paths"/* 支持别名 */
},
{
"transform": "typescript-transform-paths",
"afterDeclarations": true/* 支持类型文件中的别名 */
}
],
"paths": {
"*": ["./*"],
"ast-parser": ["../../ast-parser"]/* AST 解析器的路径*/
}
},
"include": ["src"],
"references": [{ "path": "../ast-parser" }]
}
1.5 创建入口
接下来,你可以在src
目录下新建rollup.ts
,内容如下:
const entry: string = "入口";
console.log("entry",entry);
二、测试
备注: 这部分只实现 mini-rollup
中的 初始化环境