当前位置: 首页 > wzjs >正文

广州网站建设oem网站字体使用

广州网站建设oem,网站字体使用,网站建设的用途是什么,专业的手机价格网站建设前言 简单说下 npm 是什么: npm 是一个 node 模块管理工具,也是全球最大的共享源。 npm 工具与 nodejs 配套发布,便利开发人员共享代码。npm 主要包括 npm 官方网站、CLI(控制台命令行工具)、和 registry(…

前言

简单说下 npm 是什么:
npm 是一个 node 模块管理工具,也是全球最大的共享源。 npm 工具与 nodejs 配套发布,便利开发人员共享代码。npm 主要包括 npm 官方网站、CLI(控制台命令行工具)、和 registry(包/软件仓库)。

本文的插件功能为:DNS预解析
这里只用来演示如何发布到npm,该插件的功能具体是如何实现的请看本人另一篇文章:DNS解析优化。

一、创建本地项目

1. 初始化项目

生成项目目录并且初始化package.json

mkdir my-rollup-plugin
cd my-rollup-plugin
npm init -y

2. 安装开发依赖

本文使用了如下依赖

npm install vite --save-dev
npm install glob node-html-parser url-regex

3. 编写主要内容

src 目录下创建插件文件 index.js,将逻辑封装为 Vite 插件。

const fs = require("fs")
const path = require("path")
const { parse } = require("node-html-parser") // 可以脱离浏览器环境将html字符串解析成HTML节点
const { glob } = require("glob")
const urlRegex = require("url-regex") // 可以分析文件中所包含的url
const { strict } = require("assert")const urlPattern = /(https?:\/\/[^/]*)/i // 获取外部链接
const urls = new Set() // url集合// 遍历dist目录中的所有 HTML 文件
async function searchDomain() {const files = await glob("dist/**/*.{html,css,js}")for (const file of files) {const source = fs.readFileSync(file, "utf-8")const matches = source.match(urlRegex({ strict: true }))console.log(matches, "@@@@@@@@")if (matches) {matches.forEach((url) => {const match = url.match(urlPattern)if (match && match[1]) {urls.add(match[1]) // 将域名加到Set中}})}}
}// 将遍历好的所有域名生成link预解析标签并插入到index.html中
async function insertLinks() {const files = await glob("dist/**/*.html")const links = [...urls].map((url) => `<link rel="dns-prefetch" href="${url}">`).join("\n")for (const file of files) {const html = fs.readFileSync(file, "utf-8")const root = parse(html)const head = root.querySelector("head")head.insertAdjacentHTML("afterbegin", links)fs.writeFileSync(file, root.toString(), "utf-8")}
}async function main() {await searchDomain()await insertLinks()
}main()

4. 配置package.json

{"name": "vite-plugin-tianbenchu-dns-prefetch","version": "1.0.0","main": "src/index.js","scripts": {"build": "vite build"},"keywords": ["vite","plugin","dns-prefetch"],"author": "TianBenChu","license": "ISC","description": "A Vite plugin to automatically add dns-prefetch links for external resources in the bundled HTML.","devDependencies": {"vite": "^5.4.0"},"dependencies": {"glob": "^11.0.0","node-html-parser": "^6.1.13","url-regex": "^5.0.0"}
}

5. 添加README和LICENSE

书写 README.md 文件和 LICENSE 文件,以便用户了解插件的用途和使用方法。

二、本地测试

在插件项目目录外创建测试项目并安装依赖。

npm create vite@latest
npm install

插件项目中运行以下命令,将插件链接到本地 npm 包缓存中

npm link

测试项目中使用 npm link 链接本地插件,这里的链接名对应插件项目中package.json中的name。

npm link vite-plugin-tianbenchu-dns-prefetch

配置 vite.config.js,使用本地插件

import { defineConfig } from 'vite';
import dnsPrefetchPlugin from 'vite-plugin-dns-prefetch';export default defineConfig({plugins: [dnsPrefetchPlugin()]
});

本文正常测试结果如下:

1.未配置插件前执行npm run build,发现dist目录下index.html的head中并没有link标签。
在这里插入图片描述2.使用本地插件后执行npm run build,index.html的head中插入了link标签以保证dns预解析。
在这里插入图片描述

三、发布到npm

1. 登录npm账号

如何注册npm账号:npm官网链接

npm login

如果使用了淘宝镜像则会出现以下报错:
在这里插入图片描述
切换为官方注册表即可

npm config set registry https://registry.npmjs.org/

2. 发布

npm publish

需要注意 package.json 中不能设置为私有,否则无法发布。

在这里插入图片描述

登录npm发现已经发布了该插件

在这里插入图片描述

3. 通过npm下载并测试插件

npm install vite-plugin-xxxxxx --save-dev

文章转载自:

http://qf8uyC70.xyLxm.cn
http://2a7fsSDZ.xyLxm.cn
http://QiEsPGFK.xyLxm.cn
http://zTeJDg1X.xyLxm.cn
http://hxhP6k6v.xyLxm.cn
http://SdpN3MJu.xyLxm.cn
http://sBsV81HP.xyLxm.cn
http://RnGAvGqV.xyLxm.cn
http://Ib7pD6Ta.xyLxm.cn
http://9lYhkpCm.xyLxm.cn
http://ILHyNBlU.xyLxm.cn
http://UCQs1CDd.xyLxm.cn
http://duDKxoS8.xyLxm.cn
http://Z80PlOOF.xyLxm.cn
http://hK1fcx5p.xyLxm.cn
http://7hRQR22P.xyLxm.cn
http://8BW0z1Vl.xyLxm.cn
http://Lt4Hnz4p.xyLxm.cn
http://9mzxvm1G.xyLxm.cn
http://rB7ffKbI.xyLxm.cn
http://uLT3mcOj.xyLxm.cn
http://16xuy5zy.xyLxm.cn
http://06VLQ0bP.xyLxm.cn
http://X0W4CEcz.xyLxm.cn
http://kkGpdHaB.xyLxm.cn
http://JZrMQUTw.xyLxm.cn
http://3ZGoX0yQ.xyLxm.cn
http://5CvVcS7P.xyLxm.cn
http://EVg2C4ST.xyLxm.cn
http://7m0FuIJk.xyLxm.cn
http://www.dtcms.com/wzjs/690348.html

相关文章:

  • 网站 绝对路径 相对路径wordpress 迁移 新目录
  • 陕西网站开发联系方式建立什么网站可以赚钱
  • 江苏兴力建设集团有限公司网站门户网站是什么
  • 网站最合适的字体大小哪里有网站设计学
  • 网站栏目做树形结构图商洛 网站建设
  • 开县网站建设网站建设实验原理
  • 浙江省建设政务网站海外购物网站大全
  • angularjs 做团购网站大阳摩托车官网
  • 中文域名和网站的关系wordpress网站不收录
  • 微信电脑网站是什么原因android开发是做什么的
  • php+mysql网站开发...php做网站用什么软件好
  • 城乡建设杂志官方网站wordpress 登录后台
  • 织梦网站tel标签易优cms企业网站管理系统
  • 怎么在网站上做宣传云主机购买
  • 网站流量统计分析的维度包括太原网站制作公司飞向未来
  • 网站建设责任分工正规网站制作全包
  • 个人网站备案名称淘宝上的网站怎么做
  • 有没有做视频的网站南昌营销网站建设
  • 网站建设越秀seo推广方法
  • 网站后台做链接平台免费推广
  • 企业网站设计的基本内容包括哪些搭建漏洞网站
  • 网站建设技术流程图wordpress 自动发卡
  • 微网站和门户网站的区别wordpress好用插件推荐
  • 网站增加网页怎么用服务器搭建网站
  • 免费网站建设平台哪个平台可以免费做项目
  • 唐山建设网站网站设计师网站登录
  • 电子商务网站建设与管理实训报告延安商城网站开发设计
  • 安装网站到服务器建网站要备案
  • 齐全的赣州网站建设白城网站建设公司
  • 德阳响应式网站建设做生物学的网站