范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

手把手教你发布vue组件到npm

  环境
  vue-cli 4.x建项vue create et-verify-code
  建项过程中需要你选择要安装的依赖。我这里只打算写一个比较简单的组件,所以只需要 stylus、babel、eslint 就可以了。my 和 et-component 都是我之前做项目所保存下来的组合配置。你可以选择default(默认)或者 manually (手动)。
  接下来可以删掉一些不需要的目录和文件,在src目录下,创建 main.js和et-verify-code.vue文件,如果要对webpack打包做一些配置,则需要在项目根目录下创建一个vue.config.js文件。于是,目录结构如下: E:ET-VERIFY-CODE │  .browserslistrc │  .eslintrc.js │  .gitignore │  babel.config.js │  package-lock.json │  package.json │  README.md │  vue.config.js │ ├─node_modules └─src     │  et-verify-code.vue     │  main.js
  配置package.json {   "name": "et-verify-code", // 项目名称,也是安装 npm 包的名称 npm install    "version": "0.1.0", // 项目版本   "main": "lib/et-verify-code.umd.min.js", // 包的入口文件,语句 import [pkg] from "[package]" 时,其实导入的就是 main 定义的文件   "author": "邮箱|作者",   "description": "描述",   "keywords": [ // 项目关键字     "vue",     "verify-code",     "et-verify-code"   ],   "private": false,   "scripts": { // 增加了 lib 命令     "serve": "vue-cli-service serve",     "build": "vue-cli-service build",     "lib": "vue-cli-service build --target lib --name et-verify-code --dest lib ./src/main.js",  // 指定src目录下的main.js文件为组件入口     "lint": "vue-cli-service lint"   },   ...   "repository": {     "type": "git",     "url": "项目的git地址"   },   "license": "MIT" }
  webpack 配置
  项目根目录下的vue.config.js文件module.exports = {   css: {     extract: false // 组件的样式是否另外打包成单独的css文件。默认为true     // 因为我这个组件并不复杂,css代码又不多,不想使用组件的时候还要显式的去import css,所以就不另外打包成单独的css文件了   }   // productionSourceMap: false // 是否生成sourcemap,默认是true }
  这里展开一下,如果你在package.json中main属性设置为dist目录下的文件(比如 dist/et-verify-code.umd.min.js),那么你需要一些不同的配置。
  因为默认的npm run build命令后生成在dist目录下的文件名默认是长这样的:app.[hash:8].js,中间有8位的随机生成的哈希值。
  因此,如果你在package.json中main属性设置为dist目录下的文件,则需要对 build 命令做相应的配置(package.json文件中): {   ...   "scripts": {     "build": "vue-cli-service build --target lib --name et-verify-code --dest dist ./src/main.js" // 默认是"vue-cli-service build"   }   ... }
  该命令的参数解释如下(摘自官方文档:https://cli.vuejs.org/zh/guide/cli-service.html#vue-cli-service-build)用法:vue-cli-service build [options] [entry|pattern]  选项:    --mode        指定环境模式 (默认值:production)   --dest        指定输出目录 (默认值:dist)   --modern      面向现代浏览器带自动回退地构建应用   --target      app | lib | wc | wc-async (默认值:app)   --name        库或 Web Components 模式下的名字 (默认值:package.json 中的 "name" 字段或入口文件名)   --no-clean    在构建项目之前不清除目标目录   --report      生成 report.html 以帮助分析包内容   --report-json 生成 report.json 以帮助分析包内容   --watch       监听文件变化
  --target 允许你将项目中的任何组件以一个库或 Web Components 组件的方式进行构建。更多细节请查阅构建目标(https://cli.vuejs.org/zh/guide/build-targets.html)。
  最后你可以修改README.md文件,加上项目和包的说明,这个尽可自由发挥了。
  组件开发et-verify-code.vue     
  本地测试组件是否可用Step 1:在项目中执行如下命令 npm run lib // 生成可供import的文件npm pack // 本地生成一个 et-verify-code-0.1.0.tgz 的包
  这里需要注意一下你在 package.json 中 main 属性设置的值。该字段指定了包的主入口文件。
  main 定义了包的入口文件,在NodeJS环境中,语句 import [pkg] from "[package]" 时,其实导入的就是main定义的文件。
  所以,如果你在 main 这里写的是lib/et-verify-code.umd.min.js,那么执行上述命令没问题。但如果你写的是dist/et-verify-code.umd.min.js,那么在执行npm pack命令之前,就需要先执行npm run build(而不是npm run lib)生成dist目录下可供import的文件了。
  Step 2:把生成的et-vcode-0.1.0.tgz包拷贝到用来测试组件的项目(这里你或许需要另外建一个新的项目)的根目录下,然后npm install et-verify-code-0.1.0.tgznpm run serve // 启动项目
  Step 3:在项目的入口文件main.js引入包// src/main.jsimport EtVerifyCode from "et-verify-code"Vue.use(EtVerifyCode)
  Step 4:在 demo 页面中引用这个组件 // demo.vue 
  若测试可用,在测试项目中运行npm uninstall et-verify-code卸载组件,然后就可以发布到npm上了。发布到npm
  1. 注册npm账号
  发布之前,得先有一个npm账号,如果没有的话上 官网(https://www.npmjs.com/) 注册一个,注册完账号之后,我们就要在本地登录并发布我们的组件了。
  注意:因为有点童鞋会经常用cnpm源,所以,一定要切换到npm源上才可以,不然就会报错(error: no_perms Private mode enable, only admin can publish this module)。因此你要通过执行 npm config set registry http://registry.npmjs.org 命令切换到npm源。2. 开始发布
  在发包之前,先去npm官网搜索一下有没有和你的包名相同的,如果有就改一个其他的名字吧。 npm login // 登陆npm // 然后输入你的账号、密码、邮箱 // 当你在控制台看到 Logged in as  on https://registry.npmjs.org 说明登陆成功  // 如果你保证是最新版本且已经打包过,则跳过npm run build这一步 // 这一步是执行npm run build 还是 npm run lib,要看你在 package.json 中 main 属性设置的值,详见"本地测试"中 step 1 中的说明 npm run build // 或者 npm run lib, 根据你的配置决定跑哪个命令 npm publish // 发布你的包
  注意:一个版本只能发布一次,也就是你不能发了1.0.0,下次还继续1.0.0,理论上可以覆盖,但是npm不允许这样,因为你这样覆盖,就无法知道你的版本信息了啊,插件和项目都是迭代的,like git,是有版本信息的。方法一:每一次npm publish前,自行手动更改 package.json的version方法二:通过npm version命令来发布
  我们来学习一下 npm version 命令
  在命令行敲入npm version --help就可以看到可以使用的命令:npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=] | from-git]
  major:主版本号
  minor:次版本号
  patch:补丁号
  premajor:预备主版本
  preminor:预备次版本
  prepatch:预备补丁号
  prerelease:预发布版本
  举例说明一下,假设当前版本为0.1.0
  ➜ npm version preminor
  v0.2.0-0
  ➜ npm version minor
  v0.2.0
  ➜ npm version prepatch
  v0.2.1-0
  ➜ npm version patch
  v0.2.1
  ➜ npm version prerelease
  v0.2.2-0
  ➜ npm version prerelease
  v0.2.2-1
  ➜ npm version premajor
  v1.0.0-0
  ➜ npm version major
  v1.0.0
  对了,项目的git status必须是clear,才能使用npm version命令。
  如果你的项目中包含git,命令还会自动给你提交更新到git(git commit -m "X.Y.Z"),所以还可以在npm version NEWVERSION后面加上-m参数来指定自定义的commit message。比如:npm version patch -m "Upgrade to %s for reasons"
  message中的%s将会被替换为版本号。
  这里我们再展开一下
  《版本号策略》版本号格式:主版本号.次版本号.修订号;主版本号:当你做了不兼容的 API 修改;次版本号:当你做了向后兼容的功能性新增;修订号:当你做了向后兼容的问题修正;处于开发阶段的项目版本号以0.Y.Z形式表示,此阶段正在开发基础功能、公众API;版本号只能增加,禁止下降,代码的修改必须以新版本形式更新。
  查看npm && 使用我们的包
  这个时候,你稍微等几分钟去npm官网搜索一下你的包名,就可以找到啦。如果搜不到,那就再等等,或许更新慢,没有完全更新,但是你在自己 npm 账号可以查看到自己发布的包。
  具体使用包的方法就是,在项目目录下执行命令npm install et-verify-code // 安装我们的包

听不清别人小声说话,配助听器有帮助吗?你好,建议先到专业的助听器验配中心检测一下听力,看是否是听力损失引起的听不清说话,因为如果声音足够小正常人也是听不清的。根据检查结果看助听器是否会有帮助,希望我的回答对您有所帮助您iQOO2022年03月24日新消息iQOOiQOO2022年03月24日新消息iQOO9Pro上手真实体验说说优缺点和使用感受vivo这次很大方5000mAh6nm芯44w降到1349元iQOO9Pro评测它会是2华为P50Pro新配色开售3款机型起售价5488元起在今天上午华为P50Pro最新发布了3款配色正式开售,目前起售价为5488元,并且支持12期免息,最新的丹霞橙云锦白星河蓝三款配色有着全新的设计,5488元的价格也和标准版保持一致四月份将会发布这几款机型,你更期待哪一款机型呢?四月份还有哪些手机品牌要发布新品呢?第一款就是小米12Ultra第二款则是IQOONeo6第三款vivo的X80系列。小米12Ultra已经有过手机壳的曝光了,说实话,手机后置摄像多次被央视表扬,充一次能开300KM,宝骏KiWiEV凭什么敢卖8万?在国内的新能源车市场中,除了有特斯拉零跑小鹏等此前没有造车经验的造车新势力外,还有比亚迪长城宝骏等传统车企打造的新能源车存在。其中,宝骏主要涉足于微型电动车市场,先后推出了宝骏E1科学家提出人类的理论寿命是1000岁,通过几种方法才有可能达到地球的历程已走过45亿年,而拥有高级智慧的人类寿命,却不过是在100岁以下或100岁以上的区间浮动。从古以来,帝王将相常常感慨于自己生命的短暂,百姓也只好把希望寄托于死生有命,富贵教育听我说中学生之初学编程学什么语言教育听我说我们一些学习基本的物理计算机基础导论的高年级和初高中学生,可以适当选择学一学高级语言编程(C语言PYTHON。NETJAVAJS等,什么语言不重要,主要学习编程技术),或轻薄本带一块4KOLED触屏是什么体验?华硕灵耀X逍遥笔记本体验前段时间深圳复工复产的第一天的几张新闻图片让我印象深刻,看到在等地铁的上班族中有手提厚厚的电脑包的,有挎包露出键盘的,甚至还有携带电脑主机的,目前的形势依旧告诉我们,居家办公很有可悟空保ampampquot1元保ampampquot存诱导营销退费难银保监会严肃查处来源中国经济网近期,一些首月0元免费保障等互联网保险产品引起了社会广泛关注,在银保监会多次风险提示下,这一问题依旧屡禁不止。3月21日,央视财经在曝光警惕1元保陷阱时,点名悟空保等饿了么起诉美团二选一索赔300万企查查APP显示,近日,赣州聚源美餐饮管理有限公司与上海拉扎斯信息科技有限公司拉扎斯网络科技(上海)有限公司不正当竞争纠纷民事一审判决书公开。文书显示,两原告拉扎斯信息公司拉扎斯网RedmiBookPro2022开卖12代酷睿5299元起RedmiBookPro2022款将于今天上午10点正式开售,起售价5299元起。性能方面是RedmiBookPro2022最大的亮点和升级点,其首批搭载12代酷睿H45标压移动处
鸿合科技2022年将继续扩展教育信息化产品中证网讯(记者董添)5月10日,记者从鸿合科技获悉,公司2022年将继续扩展教育信息化产品,通过孵化商用产品打造鸿合智造。鸿合科技海外BG(BusinessGroup,事业群)将进2012年就推出红色手机!多年积累,绿厂虎年新机引领新风向再过一个月就是我们一年最重要的传统节日春节了,作为国产手机品牌OPPO在历年春节之前都会推出新年特别版手机,而这项传统从2012年就已经开始,当时推出了Find5红色版本让市面上非日本2021年笔记本电脑销量TOP10,无国产品牌根据日本BCN排行榜2021年01月01日2021年12月12日的每日统计数据,笔记本电脑实际销量排行榜如下所示。第1位LAVIEN15海蓝色N1565AAL(NEC)第2位LAV王者荣耀商城里的王者水晶一直不更新,玩家提议十个王者水晶兑换一个荣耀水晶合理吗?为什么?十个王者水晶换一个荣耀水晶?这对玩家来说觉得合理,但对腾讯来说肯定是不合理的,对土豪玩家来说也是不合理的。拿我自己来说,玩王者快两年,我充值买皮肤抽荣耀水晶,现在是V7,81个英雄苹果卖的是手机吗?是品牌,概念,溢价等综合体。感谢您的阅读!苹果卖的是手机,还是ios系统?我一直认为苹果手机它卖的不仅仅是手机,我觉得这款手机卖的更多的实际上是它的系统。苹果手机的硬件确实很强,在官方直降3000元,12GB512GB5020mAh,一亿像素三摄旗舰加速清仓月薪过万的人也很难下定决心花费万元购买一款手机,因为手机这种产品想要满足基础功能基本售价过千就可以了,而且即使是各方面实力都很强大的高端旗舰也只需要四五千元,相比之下花费万元来购买商汤科技徐立对科技发展判断的领先是筑起行业壁垒的先决条件每经记者梁宏亮每经编辑梁宏亮新冠疫情与全球经济格局深刻变迁的大背景下,越来越多的人将目光聚焦在科技上,希望科技创新能够帮助我们有效穿越经济周期。纵观历史环境,大部分经济周期中非连续氢气是什么?氢气(H2)是无色无味双原子气体。相对空气密度为0。069,为最轻的元素。在常温常压下,气态氢不与大多数物质发生反应。但在较高压力和适中温度条件下,氢与许多烃类材料发生催化反应。在预制菜迎来爆发式增长1价格大涨超400!库存告急排队都买不上?!今年以来,新能源汽车市场迎来爆发式增长,作为新能源车动力电池的主要原材料电池级碳酸锂价格更是在一年内上演了三级跳,仅在本月内涨幅就接近3华为ACL访问控制列表(高级ACL为例)1什么是ACLAccessControlList访问控制列表ACLACL是由一个或多个用于报文过滤的规则组成的规则集合,通过在不同功能上的应用可达到不同的应用效果。路由器和交换机接新机MIUI13开始推送OPPOFindX5红米K50电竞版三折式手机iQOO9将全系搭载120W超快闪充iQOO手机官方微博确认iQOO9系列将全系搭载120W超快闪充,并具备同级领先的4700mAh大电池。此次iQOO9全系配备120W超快闪充与