🗒️从零搭建一个npm插件和官网
2024-12-1
| 2024-12-2
0  |  阅读时长 0 分钟
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 作为插件的打包工具。
说一下我选择它的原因:
  1. 我的插件是纯工具函数,所以不需要html的渲染,那么vite就不在我的考虑,vite主要还是应用在界面插件的开发上,会比较好一点,
  1. rollup 使用了 ES6 修订版 JavaScript 中包含的代码模块的新标准化格式,而不是以前的特定解决方案,如 CommonJSAMD。这意味着可以自由无缝地组合你最喜欢的库中最有用的单个函数。实现局部加载的功能。
  1. Tree-Shaking会静态分析您导入的代码,并排除任何未实际使用的内容
 

步骤 1: 初始化项目

  1. 创建项目目录
    1. 初始化项目
      1. 初始化一个新的 npm 项目,这将会生成一个 package.json 文件:
    1. 安装开发依赖
      1. 安装 Rollup 和所需的插件:
        • 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声明文件
    1. 配置 TypeScript
      1. 添加 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 目录来测试生成的包:
    1. 创建测试目录
      1. 编写测试代码
        1. test 目录中创建一个 JavaScript 或 TypeScript 文件来测试该包,例如 hello.test.ts
      1. 添加测试脚本
        1. 在package.json文件中添加如下内容
      1. 运行测试
         

        添加Vitepess文档插件

         

        使用官网的单独安装指令

         
        由于vitepessrollup其实是分开的,无所谓先后安装的顺序,你也可以使用vitepess官网的向导安装指令
         
        1. 在文件中建立如下目录
          1. 启动并运行
            1. 将以下 npm 脚本注入到 package.json 中:
              docs:dev 脚本将启动具有即时热更新的本地开发服务器。使用以下命令运行它:
           
          基本配置到这里就结束了,更多关于vitepress的用法关注官网
           
        2. 项目管理
        3. 线性代数学习笔记-1-方程组的几何解释svg版本轻量手写板
          Loading...