插件打包与发布
插件功能开发完成后,若需要发布到公共组件库中(例如:npmjs),需要对插件进行打包并发布,简单说明一下这个过程,以插件名 dialog 为例
1、创建 dialog 目录,并进入
2、运行命令行,初始化项目,生成 package.json
npm init -y
3、使用 webpack-simple 模板构建项目基本结构(前提为已自行安装好 vue-cli)
vue init webpack-simple
根据导航提示,设置好项目后,基本结构生成完成
4、删除无用内容 删除 index.html 和 src 目录下的所有文件
5、复制插件内容到 src 目录中
6、修改 package.json 配置内容
{ "name": "dialog", "description": "the dialog plguin", "version": "1.0.0", "author": "TerryZ <terry5@foxmail.com>", "license": "MIT", //删除原有的"priveate": true,发布到公共库的项目,不能设置该参数 //增加 main 配置,设置插件在安装后的主入口文件 "main": "dist/dialog.js", "scripts": { "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" }, "dependencies": { "vue": "^2.5.11" }, //增加插件关键字描述,非必须,按需设置 "keywords": [ "front-end", "javascript", "dialog", "vue", "vuejs" ], "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" ], "devDependencies": { "babel-core": "^6.26.0", "babel-loader": "^7.1.2", "babel-preset-env": "^1.6.0", "babel-preset-stage-3": "^6.24.1", "cross-env": "^5.0.5", "css-loader": "^0.28.7", "file-loader": "^1.1.4", "node-sass": "^4.5.3", "sass-loader": "^6.0.6", "vue-loader": "^13.0.5", "vue-template-compiler": "^2.4.4", "webpack": "^3.6.0", "webpack-dev-server": "^2.9.1" } }
7、修改 webpack.config.js 的 output 部分配置
output: { path: path.resolve(__dirname, './dist'), publicPath: '/dist/', //修改输出打包后的脚本文件名,该文件即是 package.json 中配置的 main 属性的对应文件 filename: 'dialog.js', //增加以下库配置信息 library: 'Dialog', libraryTarget: 'umd', umdNamedDefine: true }
8、安装库,国内环境建议使用 cnpm 安装速度会快些
npm install -g cnpm --registry=https://registry.npm.taobao.org
9、编译插件
npm run build
10、发布插件,确定你的插件名当前公共库中不存在,否则会发布失败
npm publish
图片资源打包
插件中使用到的图片资源,在打包后,根据模板的默认配置,会将图片资源输出到 dist 目录中,此时就有图片引用路径问题。在样式内容中会发现原来设置的
background-image:url('../image/a.jpg')
会转换成
background-image:url('/dist/a.jpg')
实际的完整路径即是
http://xxx.com/dist/a.jpg
我们知道插件在安装后,会统一安装在 node_modules 目录中,这样的目录显然是不正确的
一种折中的办法,就是将图片资源转换成 base64 编码,不生成实体图片
webpack-simple 中默认使用 file-loader 来处理图片,这里换成 url-loader,两者的区别在于后者是前者的功能封装,还增加了将图片编码为 base64 的功能,所以可以放心使用
安装 url-loader
npm i url-loader --save-dev
webpack 配置修改(webpack-simple 模板)
module.exports = { ... module: { rules: [ {...}, { test: /\.(png|jpg|gif|svg)$/, loader: 'url-loader', options: { limit: 30000, name: '[name].[ext]?[hash]' } } ] }, ... }
上面的配置中,将原 file-loader 更换了 url-loader,并增加 limit 参数,该参数设置了图片容量在小于指定容量(上例设置为30kb)时,不会转换成 base64
如此调整配置后,再运行编译
npm run build
会发现编译到 dist 目录中的内容已经没有图片文件,只有编译完成的 build.js 和对应的 map 文件,所以在插件开发时,尽可能使用 CSS 处理样式,需要使用到图片或图标资源,尽可能也使用图片尺寸小的图片,方便打包处理
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍vue与django集成打包的实现方法,包括了vue与django集成打包的实现方法的使用技巧和注意事项,需要的朋友参考一下 1.首先创建 django项目 并在 django项目文件下创建vue项目 2.修改django项目文件下的setting.py 修改django模板路径 指向 vue项目的dist 修改django静态文件路径 这样基本就可以了 3.vue打包配置 由于dj
本文向大家介绍vue中jsonp插件的使用方法示例,包括了vue中jsonp插件的使用方法示例的使用技巧和注意事项,需要的朋友参考一下 通过jsonp简单获取接口数据,对了,注意下jsonp方法会自动添加callback 总结 到此这篇关于vue中jsonp插件的使用的文章就介绍到这了,更多相关vue中jsonp插件使用内容请搜索呐喊教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持呐喊教
gradle新手, 我已经开始实现一个小的gradle插件。该插件的目标是为项目创建一个发布zip,目的是跨几个不同的项目使用。 每个项目都有一个yaml文件,其压缩结构松散; > zip表示此时应该压缩给定的工作目录 task表示为准备压缩而准备特定目录时应执行的梯度任务的名称 想到的最好的方法是,通过这种方法,我可以在项目之间重用渐变任务,如果需要,可以在每个项目级别包括自定义渐变任务,并在y
打包工程 完成代码编写和调试后,需要将其打包成一个zip文件和降级H5资源文件。 打包语法:qap package 在QAP工程根目录(包含package.json的目录)下运行: qap package 该命令会新建或者清空_output文件夹,并根据package.json中name产生同名的zip文件。该文件用来上传至千牛服务端,供千牛客户端下载使用。 该命令还会在_output文件夹下产
本文向大家介绍Python代码的打包与发布详解,包括了Python代码的打包与发布详解的使用技巧和注意事项,需要的朋友参考一下 在python程序中,一个.py文件被当作一个模块,在各个模块中定义了不同的函数。当我们要使用某一个模块中的某一个函数时,首先须将这个模块导入,否则就会出现函数未定义的情况. 下面记录的是打包及安装包的方法。 本文示例是建立一个模拟登录的程序: logIn.py文件代码如
当我们开发完插件的功能后需要打包插件时,我们需要进行以下的几个操作。 打包压缩 首先确保插件的目录结构有按照目录结构章节进行规范设计,且所有插件功能均已完成开发和测试。 命令行一键打包 我们可以在命令行一键打包插件,首先闭包工作目录定位到think文件所在目录,如下 cd /var/www/yoursite/ 然后使用 //mydemo为你的插件目录名称 php think addon -a my
我以一个新的gradle用户的身份创建gradle版本,但我过去曾与maven合作过。 我试图重现maven发布插件的动作: 将分支版本更改为发行号(在svn提交) 如您所见,我正在使用: Nexus OSS作为版本控制库 SVN作为scm Gradle(2.8) 我正试图通过这两个插件实现我的目标: > 将分支版本更改为发行号(在svn提交) 创建标签(位于svn) 将分支版本更改为新快照编号(
本文向大家介绍vue打包后显示空白正确处理方法,包括了vue打包后显示空白正确处理方法的使用技巧和注意事项,需要的朋友参考一下 在项目中很多时候需要用到vue打包成html不需要放在服务器上就能浏览。根据官网打包出来的html直接打开是显示空白。 vue打包后显示空白正确处理方法是 1、找到配置文件 修改 这样打包处理可以打开但是页面样式会找不到 2、修改 找到对应的位置加上publicPath: