【Rollup】用rollup从0到1开发一个js插件并发布到npm

Rollup 是一个 JavaScript 模块打包器,专注于打包 ES6 模块将其编译回多种模块化格式,尤其适合打包库和框架,因为它可以生成更小、更高效的代码,并且特别适合将代码打包成可在浏览器中使用的库。

从0到1开发js插件

1.创建文件夹并初始化package仓库

npm init

执行 一路回车 之后会看到生成的package.json文件

2.创建index.js用来写插件的核心内容

//index.js
export function formatDate(date) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  return `${year}-${month}-${day}`;
}

3.安装并配置rollup

npm install rollup

创建rollup.config.js文件

//rollup.config.js
export default {
  input: "index.js",//打包入口
  //打包出口
  output: [
    {
      file: "lib/pbstar-format.es.js",
      format: "es"//esm模式 用作es6的import导入形式
    },
    {
      file: "lib/pbstar-format.umd.js",
      format: "umd",//umd模式 用作script标签引入形式
      name: "pbstarFormat"//umd模式需要配置全局变量名
    }
  ]
};

修改package.json文件,添加type和rollup打包命令

"type": "module",
"scripts": {
  "build": "rollup -c"
},

在这里插入图片描述

4.使用rollup打包

执行命令打包

npm run build

在这里插入图片描述

5.使用打包好的插件

<!-- 使用esm模式 -->
<script type="module">
  import { formatDate } from '../lib/pbstar-format.es.js';
  console.log('esm',formatDate(new Date()));
</script>
<!-- 使用umd模式 -->
<script src="../lib/pbstar-format.umd.js"></script>
<script>
  console.log('umd',pbstarFormat.formatDate(new Date()));
</script>

在这里插入图片描述
至此已完成了一个插件的开发

扩展

1.Rollup压缩代码@rollup/plugin-terser

npm install @rollup/plugin-terser --save-dev

修改rollup.config.js文件

import terser from "@rollup/plugin-terser";

plugins: [
  terser()
],

在这里插入图片描述

2.ts支持

创建index.d.ts文件

//index.d.ts
declare module 'pbstar-format';

修改package.json文件
在这里插入图片描述

3.发布插件到npm仓库

修改package.json文件

//发布必要参数
"name": "pbstar-format",//npm包名
"version": "1.0.0",//npm包版本
"main": "./lib/pbstar-format.es.js",//es模式入口文件
//要提交的文件
"files": [
  "lib",
  "index.d.ts",
  "README.md"
],

执行npm命令

npm publish

在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是一个简单的示例,展示如何编写一个Vue3的npm插件: 1. 创建一个新的npm包并初始化 首先,创建一个新的目录,然后在该目录下运行以下命令来初始化npm包: ``` npm init -y ``` 这将创建一个package.json文件,其中包含有关您的npm包的信息。 2. 安装必要的依赖项 接下来,需要安装一些必要的依赖项,包括Vue3和rollup。运行以下命令: ``` npm install --save vue@next rollup rollup-plugin-commonjs rollup-plugin-node-resolve rollup-plugin-terser ``` Vue3是Vue.js的下一代版本,rollup是用于打包JavaScript的工具。 3. 创建插件代码 创建一个名为"index.js"的文件,该文件将包含您的插件代码。这里是一个简单的示例,它向Vue的全局对象添加了一个名为"myPlugin"的方法: ```js export function myPlugin() { console.log('Hello from myPlugin!'); } export default { install: (app) => { app.config.globalProperties.$myPlugin = myPlugin; }, }; ``` 4. 创建rollup配置文件 为了将您的插件打包到一个单独的JavaScript文件中,您需要创建一个名为"rollup.config.js"的文件。以下是一个示例配置文件: ```js import { terser } from 'rollup-plugin-terser'; import resolve from 'rollup-plugin-node-resolve'; import commonjs from 'rollup-plugin-commonjs'; export default { input: 'index.js', output: { file: 'dist/myPlugin.js', format: 'umd', name: 'myPlugin', }, plugins: [ resolve(), commonjs(), terser(), ], }; ``` 这将创建一个名为"dist/myPlugin.js"的文件,其中包含已打包的插件代码。 5. 编译和发布插件 最后,您需要使用rollup命令来编译插件代码,并使用npm命令将插件发布npm仓库中: ``` npx rollup -c npm login npm publish ``` 现在,您的Vue3插件已经准备好使用了!在Vue应用程序中安装插件的方法如下: ```js import { createApp } from 'vue'; import myPlugin from 'my-plugin'; const app = createApp({}); app.use(myPlugin); app.mount('#app'); ``` 希望这个简单的示例可以帮助您开始编写Vue3插件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初辰ge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值