跳到主要内容

模拟实现

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 中的 初始化环境