date
Dec 1, 2024 02:55 AM
type
status
slug
summary
tags
category
updated
Dec 2, 2024 05:21 AM
icon
password
在日常的前端开发中,经常会遇到文本处理,日期处理,文本转换等需求。通常是将它写到一个
utils
文件中。问题来了,每个项目都要处理,那么文件就要重复的复制,我是个懒人。想着用rollup
将它打包成一个npm插件,然后直接安装,之后局部引入来。这样就方便了,同时也只需要我需要的插件。这样一来随着工具函数的扩展,势必会带来一个问题,如何维护函数的使用呢?那么就需要一个文档了,文档的便于管理也是个问题,这里采用vitepess
来作为工具函数的文档官网。npm插件包构建
这里我根据个人需求采用的是
rollup
作为插件的打包工具。说一下我选择它的原因:
- 我的插件是纯工具函数,所以不需要html的渲染,那么
vite
就不在我的考虑,vite主要还是应用在界面插件的开发上,会比较好一点,
rollup
使用了 ES6 修订版JavaScript
中包含的代码模块的新标准化格式,而不是以前的特定解决方案,如CommonJS
和AMD
。这意味着可以自由无缝地组合你最喜欢的库中最有用的单个函数。实现局部加载的功能。
Tree-Shaking
会静态分析您导入的代码,并排除任何未实际使用的内容。
步骤 1: 初始化项目
- 创建项目目录
- 初始化项目
初始化一个新的 npm 项目,这将会生成一个
package.json
文件:- 安装开发依赖
- rollup:核心打包工具。
- rollup-plugin-typescript2:处理 TypeScript 文件。
- @rollup/plugin-commonjs:将 CommonJS 转换为 ES6。
- @rollup/plugin-babel:使用 Babel 转译代码。
- @rollup/plugin-node-resolve:解析模块。
- rollup-plugin-node-globals:处理 Node.js 的全局变量。
- rollup-plugin-node-builtins:处理 Node.js 的内置模块。
- @rollup/plugin-terser:压缩代码。
- @rollup/plugin-json:导入 JSON 文件。
- rollup-plugin-dts:生成 TypeScript 声明文件。
- typescript:安装 TypeScript。
- @types/node: types声明文件
安装 Rollup 和所需的插件:
- 配置 TypeScript
添加
tsconfig.json
来配置 TypeScript:步骤 2: 项目结构
创建项目文件夹和文件结构:
- src/index.ts 是你的主文件,它将包含你的主要代码。
步骤 3: 编写代码
在
src/modules/hello.ts
中添加一些简单的代码,例如一个简单的工具函数在
src/iem.d.ts
中导人所有的函数- 告诉 TypeScript,所有匹配
"iem:./modules/*"
模式的导入都是有效的模块。
- 使用空的导出 (
export {}
) 来表示这些模块不导出任何内容。
- 主要目的是让 TypeScript 理解那些通过自定义加载器或者特殊路径的模块,以确保项目正常编译,特别是在集成非标准模块加载或路径时。
在
src/index.ts
导出所有的工具函数步骤 4: 配置 Rollup
创建一个名为
rollup.config.js
的文件,并粘贴给出的配置代码:步骤 5: 添加打包脚本
打开
package.json
,并添加 scripts
部分来配置打包命令:- build:执行打包。
- build:watch:监视文件变化并实时打包。
步骤 6: 打包项目
运行以下命令以打包你的项目:
这将会生成以下文件和目录:
- dist/esm:包含 ES Module 格式的代码。
- dist/cjs:包含 CommonJS 格式的代码。
- dist/umd/index.js:包含 UMD 格式的代码,可以用于浏览器和 Node.js。
- dist/types:包含 TypeScript 的声明文件(
.d.ts
文件)。
步骤 7: 测试生成的 npm 包
你可以创建一个
test
目录来测试生成的包:- 创建测试目录
- 编写测试代码
在
test
目录中创建一个 JavaScript 或 TypeScript 文件来测试该包,例如 hello.test.ts
:- 添加测试脚本
在package.json文件中添加如下内容
运行测试
添加Vitepess文档插件
使用官网的单独安装指令
- 在文件中建立如下目录
- 启动并运行
将以下 npm 脚本注入到
package.json
中:docs:dev
脚本将启动具有即时热更新的本地开发服务器。使用以下命令运行它:基本配置到这里就结束了,更多关于vitepress的用法关注官网