按照element-ui官方文档的介绍,使用unpkg提供的CDN地址,直接引用即可。 ? 去UNPKG的网站上下载吧,太繁琐了,毕竟一个UI组件项目有成百上千个文件。 ? 幸而,在网上找到了一个Python下载unpkg项目的脚本,输入项目模块名之后,就可以一键运行下载,很是方便。 完整代码如下所示: import requests, re, os, time, shutil url = "https://unpkg.com/" mod = "element-ui" version 定义变量 接着在第3到5行,它定义了 4 个变量,分别为: url:指定unpkg网站的主网址; mod:指定项目模块的名称; version:指定项目模块的版本; headers:指定请求头; 定义功能函数 getHTML() getHTML()函数使用requests模块的get方法来请求unpkg的项目文件地址,以获取项目文件的内容。
把UNPKG网站中指定目录的文件全部下载到本地 例如: 现在vue.js使用很广泛,饿了么的element-ui基于vue.js开发的ui框架。 官方提供了unpkg的访问地址https://unpkg.com/element-ui@2.4.6/。 可以直接在项目中使用cdn引入! 简单写一个Groovy的小脚本,直接从unpkg上下载到本地磁盘。代码亲测ok。自己一直在用! "/" + libName + "/" + libVersion) //先清空目录 fileDownloadPath.deleteDir() fileDownloadPath.mkdirs() //UNPKG 网站的element-ui项目的根URL @Field String rootUrl = "https://unpkg.com/${libName}@${libVersion}" //开始处理 println
等待安装完成 image.png 添加Node项目 --> v16.13.2版本(如果没有此版本,点击更新版本列表即可)--> 等待安装完成 image.png 终端 --> 连接服务器 --> 克隆UNPKG 项目 --> 输入pwd命令查看克隆目录 git clone https://github.com/mjackson/unpkg.git image.png 文件 --> unpkg目录 --> modules 在"postinstall": "yarn run build",下添加"start": "set NODE_ENV=production&&node server.js" { "name": "unpkg ", "postinstall": "yarn run build", "start": "set NODE_ENV=production&&node server.js" }, unpkg 运行项目生成server.js npm run build image.png 网站 --> Node项目 --> 新建Node项目 --> 填写配置 --> 提交 --> 等待模块安装完毕 项目目录:选择unpkg
本文聚焦于一起大规模恶意npm包滥用事件,分析攻击者如何利用UNPKG内容分发网络(CDN)实现钓鱼基础设施的快速部署与隐蔽分发。 UNPKG作为一个无需认证即可访问的公共CDN服务,允许用户通过标准URL格式(https://unpkg.com/<package-name>@<version>/<file>)直接引用任意npm包中的文件 (2)UNPKG 利用机制UNPKG的设计初衷是方便前端开发者快速引入库文件,例如:https://unpkg.com/react@18.2.0/umd/react.production.min.js攻击者利用此机制 此外,UNPKG作为公共服务,因频繁托管恶意内容而面临声誉风险,平台方不得不加强内容扫描与人工审核投入,间接抬高运营成本。 “https://unpkg.com”忽视具体路径指向钓鱼页这一“逐层信任累积”现象使得最终页面虽具高度欺骗性,却能在多个环节顺利通行。
1、 https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json 2、 https://unpkg.com 5、 https://unpkg.com/live2d-widget-model-haru/02@1.0.5/assets/haru/02.model.json 6、 https://unpkg.com 9、 https://unpkg.com/live2d-widget-model-izumi@1.0.5/assets/izumi.model.json 10、 https://unpkg.com 16、 https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json 17、 https://unpkg.com/ unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json 22、 https://unpkg.com/live2d-widget-model-z16
--- 1、加载React库 # 1、用<script>加载 开发版:<script src="https://<em>unpkg</em>.com/react@16/umd/react.development.js" -- <script src="https://<em>unpkg</em>.com/react@16/umd/react.production.min.js" crossorigin></script> # 2、ES5 /react-dom@16/umd/react-dom.development.js" crossorigin></script> 发布版:<script src="https://<em>unpkg</em>.com/ ></script> <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin> > <script src="https://<em>unpkg</em>.com/react-dom@17/umd/react-dom.development.js"></script> <!
使用方法,直接替换这一句即可 1、https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json 6、https ://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json 7、https://unpkg.com/live2d-widget-model-hibiki 9、https://unpkg.com/live2d-widget-model-izumi@1.0.5/assets/izumi.model.json 10、https://unpkg.com/live2d-widget-model-koharu 13、https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json 15、https://unpkg.com/live2d-widget-model-nipsilon 18、https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json 19、https://unpkg.com
-- import stylesheet --> <link rel="stylesheet" href="//<em>unpkg</em>.com/iview/dist/styles/iview.css"> <! -- import iView --> <script src="//<em>unpkg</em>.com/iview/dist/iview.min.js"></script> <! -- import form-create/iview --> <script src="//<em>unpkg</em>.com/@form-create/iview/dist/form-create.min.js"> -- import element --> <script src="https://<em>unpkg</em>.com/element-ui/lib/index.js"></script> <! -- import ant-design-vue --> <script defer src="https://<em>unpkg</em>.com/ant-design-vue@1.5.3/dist/antd.js">
首先按照官方文档一分钟用上React以及快速尝试JSX,如果你不需要JSX,可以按照这个Demo去实现 我们在页面上放入这三个cdn: <script crossorigin src="https://<em>unpkg</em>.com /react@16/umd/react.production.min.js"></script> <script crossorigin src="https://<em>unpkg</em>.com/react-dom @16/umd/react-dom.production.min.js"></script> <script src="https://<em>unpkg</em>.com/babel-standalone@6/babel.min.js /react@17/umd/react.development.js" crossorigin></script> <script src="https://<em>unpkg</em>.com/react-dom @17/umd/react-dom.development.js" crossorigin></script> <script src="https://<em>unpkg</em>.com/babel-standalone
--react的核心库--> <script crossorigin src="https://<em>unpkg</em>.com/react@16/umd/react.development.js"> --将浏览器不支持的jsx语法转化为js语法--> <script crossorigin src="https://<em>unpkg</em>.com/babel-standalone@6.15.0/ --react的核心库--> <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"> --将浏览器不支持的jsx语法转化为js语法--> <script crossorigin src="https://<em>unpkg</em>.com/babel-standalone@6.15.0/ --react的核心库--> <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js">
--react的核心库--> <script crossorigin src="https://<em>unpkg</em>.com/react@16/umd/react.development.js --将浏览器不支持的jsx语法转化为js语法--> <script crossorigin src="https://unpkg.com/babel-standalone@6.15.0 --react的核心库--> <script crossorigin src="https://<em>unpkg</em>.com/react@16/umd/react.development.js --将浏览器不支持的jsx语法转化为js语法--> <script crossorigin src="https://unpkg.com/babel-standalone@6.15.0 --react的核心库--> <script crossorigin src="https://<em>unpkg</em>.com/react@16/umd/react.development.js
-- docsify-edit-on-github --> <script src="//<em>unpkg</em>.com/docsify-edit-on-github/index.js"></script> /unpkg.com/prismjs/components/prism-python.js"></script> <! -- 复制到剪贴板 --> <script src="//<em>unpkg</em>.com/docsify-copy-code"></script> <! -- emoji --> <script src="//<em>unpkg</em>.com/docsify/lib/plugins/emoji.js"></script> <! -- 图片缩放 --> <script src="//<em>unpkg</em>.com/docsify/lib/plugins/zoom-image.js"></script> <!
/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json", // jsonPath: "https://unpkg.com /live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json", // jsonPath: "https://unpkg.com /live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json", // jsonPath: "https://unpkg.com /live2d-widget-model-izumi@1.0.5/assets/izumi.model.json", // jsonPath: "https://unpkg.com /live2d-widget-model-miku@1.0.5/assets/miku.model.json", // jsonPath: "https://unpkg.com/
官方发布了通告,暂停npmmirror unpkg 的【新增文件】服务,不再解析新的包版本,但存量的仍会保留,所以不会影响使用者的当前业务。支持正版,从我做起。科普什么是 unpkg ? 例如,如果你想在你的网页中使用 jQuery,你可以通过 unpkg 提供的链接来引用它:<script src="https://<em>unpkg</em>.com/jquery@3.5.1/dist/jquery.min.js <em>unpkg</em> 还支持通过路径来访问包的内容,例如:<link href="https://unpkg.com/bootstrap@4.5.0/dist/css/bootstrap.min.css" rel 使用 unpkg 可以极大地简化前端开发中的资源管理,因为它提供了一个简单、快速的方式来引入第三方库。 除了视频文件,这群团伙将 m3u8 文件上传到了 unpkg (https://unpkg.com/lyq2@1.1.7-1/playlist.m3u8) 作为索引。
-- 引入样式 --> <link rel="stylesheet" href="https://<em>unpkg</em>.com/element-ui/lib/theme-chalk/index.css"> <! -- 引入组件库 --> <script src="https://<em>unpkg</em>.com/element-ui/lib/index.js"></script> 一个简单的例子。 <! html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="https://<em>unpkg</em>.com /vue/dist/vue.js"></script> <script src="https://<em>unpkg</em>.com/element-ui/lib/index.js"></script> /vue/dist/vue.js"></script> <script src="https://<em>unpkg</em>.com/element-ui/lib/index.js"></script>
UNPKG[2]在此时可以帮我们一个大忙。unpkg 是一个快速的全球内容分发网络,适用于 npm 上的所有内容。 例如,访问https://unpkg.com/jquery@3.5.1会自动重定向到https://unpkg.com/jquery@3.5.1/dist/jquery.js,并返回v3.5.1版本的jQuery 文件内容(如果不带版本号,会返回最新的资源): 也就是说,我们可以将https://unpkg.com/➕包名直接丢给<script />标签来加载资源: const unpkg = (name) = 可以学到什么 unpkg unpkg[6] 是一个内容源自 npm 的前端常用全球快速 CDN,它能以快速、简洁、优雅的方式提供任意包、任意文件的访问,在流行的类库、框架文档中常常能看到它的身影。 参考资料 [1]cdnjs: https://cdnjs.com/api [2]UNPKG: https://unpkg.com/ [3]7 分钟学会写一个浏览器插件——突破某 SDN 未登录禁止复制的限制
: "https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json", // jsonPath: "https: //unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json", // jsonPath: "https://unpkg.com/live2d-widget-model-ni-j @1.0.5/assets/ni-j.model.json", jsonPath: "https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets : "https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json", // jsonPath: " https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json", // jsonPath: "https://unpkg.com
简单使用 <body> <script src="https://<em>unpkg</em>.com/petite-vue" defer init></script>
--> <script src="https://<em>unpkg</em>.com/react@16/umd/react.development.js" crossorigin></script> <! -- 引入react-dom,用于支持react操作dom--> <script src="https://<em>unpkg</em>.com/react-dom@16/umd/react-dom.development.js --引入babel,用于jsx转为js--> <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> <script --> <script src="https://<em>unpkg</em>.com/react@16/umd/react.development.js" crossorigin></script> <! --引入babel,用于jsx转为js--> <script src="https://<em>unpkg</em>.com/babel-standalone@6/babel.min.js"></script> <script
/dayjs/dayjs.min.js"></script> <script src="https://<em>unpkg</em>.com/dayjs/plugin/customParseFormat.js"> </script> <script src="https://<em>unpkg</em>.com/dayjs/plugin/weekday.js"></script> <script src="https ://<em>unpkg</em>.com/dayjs/plugin/localeData.js"></script> <script src="https://<em>unpkg</em>.com/dayjs/plugin/weekOfYear.js "></script> <script src="https://<em>unpkg</em>.com/dayjs/plugin/weekYear.js"></script> <script src="https ://<em>unpkg</em>.com/dayjs/plugin/advancedFormat.js"></script> <script src="https://<em>unpkg</em>.com/dayjs/plugin