npm 上传发布自定义组件以及使用详细流程(Vue包含)

},

// 项目官网的地址

“homepage”: “https://github.com/dengzemiao/DZMFullPage”,

// 指定打包后,包中存在的文件夹

“files”: [

“dist”,

“src”

],

// 指定了项目的目标浏览器的范围

“browserslist”: [

“> 1%”,

“last 2 versions”,

“not ie <= 8”

],

// 项目关键词,供搜索

“keywords”: [

“测试”

]

}

  • 调整 package.json,文件中这两个是必须要填写的,第一个是包名,第二个是版本号,其他随意,更具自己需求调整,没什么特别需求就修改名字跟版本号直接上,其他默认是啥就是啥,看自己需求去改或者增删。

{

“name”: “dzmtest”,

“version”: “1.0.0”

}

  • NPM 官网查询一下当前包名是否存在,存在的话就需要换一个:

  • DZMTest 文件夹里面在创建一个 index.js 文件,这也是上面设置的入口文件

index.js:

// index.js 页面方法

function indexTest () {

console.log(‘index.js 测试输出’)

}

// 导出 (module.exports 如果使用不是很熟,百度一下就知道了,用法很简单)

module.exports = { indexTest }

  • (如果不需要本地测试一下可以跳过) 创建好 index.js 之后可以本地测试一下,创建一个 test.js 在这个文件里面导入 index.js 进行本地使用一下

test.js:

// 导入 index.js 中的方法进行本地测试

var index = require(‘./index’)

// 执行方法

index.indexTest()

  • 我这边用的是 VSCode 装了运行 js 的插件可以直接右键运行代码,输出为

[Running] node “/Users/dengzemiao/Desktop/NPM/DZMTest/test.js”

index.js 测试输出

[Done] exited with code=0 in 0.054 seconds

  • 这样,说明代码是没有问题的,那么可以进行发布了!!

  • (可选) 可以在根目录下新建 .npmignore 文件,设置忽略发布文件,文件不多可以不加,看自己心情。

.DS_Store

node_modules/

examples/

packages/

public/

vue.config.js

babel.config.js

*.map

*.html

local env files

.env.local

.env.*.local

Log files

npm-debug.log*

yarn-debug.log*

yarn-error.log*

Editor directories and files

.idea

.vscode

*.suo

.ntvs

*.njsproj

*.sln

.sw

  • 发布代码

$ npm publish

  • 如果登录的 NPM 账号没有验证邮箱,运行命令之后会报错 you must verify your email before publishing a new package,所以注册之后记得去邮箱里面验证一下,验证之后可以再次运行发布命令,如果还报这个错误可以重新登录一下 NPM 账号:

dengzemiaodeMacBook-Pro:DZMTest dengzemiao$ npm publish

npm notice

npm notice 📦 dzmtest@1.0.0

npm ERR! code E403

// 主要是这行错误

npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/dzmtest - you must verify your email before publishing a new package: https://www.npmjs.com/email-edit

npm ERR! 403 In most cases, you or one of your dependencies are requesting

npm ERR! 403 a package version that is forbidden by your security policy.

npm ERR! A complete log of this run can be found in:

npm ERR! /Users/dengzemiao/.npm/_logs/2020-07-22T03_27_19_859Z-debug.log

  • 如果出现这个错误,意思是需要修改 package.json 中的 version 版本号,一般是版本已经存在,新项目发布应该不会报这个错误。

dengzemiaodeMacBook-Pro:DZMTest dengzemiao$ npm publish

npm notice

npm notice 📦 dzmtest@1.0.0

npm ERR! code E403

// 主要是这行错误

npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/dzmtest - You cannot publish over the previously published versions: 1.0.0.

npm ERR! 403 In most cases, you or one of your dependencies are requesting

npm ERR! 403 a package version that is forbidden by your security policy.

npm ERR! A complete log of this run can be found in:

npm ERR! /Users/dengzemiao/.npm/_logs/2020-07-23T03_32_29_970Z-debug.log

  • You cannot publish over the previously published versions: 1.0.0. 这个错误是版本已经存在,需要修改一个新版本号在上传,这种问题一般在后续版本迭代中出现,忘记修改版本号就直接提交。

  • 下面是 version 字段版本格式(这里只是建议这么写,不在意可以随意)

1、版本格式:主版本号、次版本号、修订号

2、版本号递增规则如下:(例如:我原本的项目是 1.0.0 版本的话)

主版本号:当你做了不兼容的 API 修改,此情况版本应该为 1.0.1

次版本号:当你做了向下兼容的功能性新增,此情况版本应该为 1.1.0

修订号:当你做了向下兼容的问题修正。此情况版本应该为 2.0.0

3、通过 npm version <update_type> 自动改变版本

update_type 为 patch、minor,、major 其中之一,分别表示补丁,小改,大改。

例如: $ npm version minor v2.0.0

  • 如果有这个错误,可以修改一下 package.json 中的 version1.0.1 版本,然后再次执行发布命令

{

“name”: “dzmtest”,

“version”: “1.0.1”,

}

  • 再次执行发布命令

$ npm publish

dengzemiaodeMacBook-Pro:DZMTest dengzemiao$ npm publish

npm notice

npm notice 📦 dzmtest@1.0.0

npm notice === Tarball Contents ===

npm notice 130B index.js

npm notice 114B test.js

npm notice 202B package.json

npm notice === Tarball Details ===

npm notice name: dzmtest

npm notice version: 1.0.0

npm notice package size: 471 B

npm notice unpacked size: 446 B

npm notice shasum: fc4453748f8b0ca687a2ddea8f650ab75b4c5bec

npm notice integrity: sha512-V+RHefgSXWB/Q[…]Qm/FP3BNcaL9g==

npm notice total files: 3

npm notice

  • dzmtest@1.0.0

dengzemiaodeMacBook-Pro:DZMTest dengzemiao$

  • 这样就发布成功了!!!
五、使用刚发布的包

1)、创建一个vue项目,并运行起来。

$ vue create npm-test

2)、在新建的 npm-test 项目中导入 dzmtest 包,npm 命令使用介绍以及区别

$ npm i dzmtest

dengzemiaodeMacBook-Pro:npm-test dengzemiao$ npm i dzmtest

  • dzmtest@1.0.0

added 1 package and audited 1170 packages in 6.872s

41 packages are looking for funding

run npm fund for details

found 0 vulnerabilities

这样就导入成功了!!

之前在编写 NPM 项目的时候内部文件是这样的:

导入到其他项目之后文件内部是这样的,在 node_modules 文件目录下:

这样就很清楚明白该怎么去编写 NPM 项目了,它是直接整个导入进来了之前的 NPM 项目。

3)、导入成功之后,支持使用

需要在新建的 npm-test 项目里面找到 main.js 全局导入一下 dzmtest

import Vue from ‘vue’

import App from ‘./App.vue’

import router from ‘./router’

import store from ‘./store’

// 如果不是很明白这两种导入方式,可自己百度一下

// JS是这样导入

import DZMTest from ‘dzmtest’

Vue.prototype.$dzmtest = DZMTest

// 如果是自定义UI组件,就需要这样使用,这样就可以直接支持全局使用

// import DZMTest from ‘dzmtest’

// Vue.use(DZMTest)

Vue.config.productionTip = false

new Vue({

router,

store,

render: h => h(App)

}).$mount(‘#app’)

导入成功之后,可以在任何页面中去使用 $dzmtest 这个属性了,这里是新建的项目,就直接在 Home 页面测试一下就行了

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

中年危机是真实存在的,即便有技术傍身,还是难免对自己的生存能力产生质疑和焦虑,这些年职业发展,一直在寻求消除焦虑的依靠。

  • 技术要深入到什么程度?

  • 做久了技术总要转型管理?

  • 我能做什么,我想做什么?

  • 一技之长,就是深耕你的专业技能,你的专业技术。(重点)

  • 独立做事,当你的一技之长达到一定深度的时候,需要开始思考如何独立做事。(创业)

  • 拥有事业,选择一份使命,带领团队实现它。(创业)

一技之长分五个层次

  • 栈内技术 - 是指你的前端专业领域技术

  • 栈外技术 - 是指栈内技术的上下游,领域外的相关专业知识

  • 工程经验 - 是建设专业技术体系的“解决方案”

  • 带人做事 - 是对团队协作能力的要求

  • 业界发声 - 工作经验总结对外分享,与他人交流

永远不要放弃一技之长,它值得你长期信仰持有

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue 等等。


危机是真实存在的,即便有技术傍身,还是难免对自己的生存能力产生质疑和焦虑,这些年职业发展,一直在寻求消除焦虑的依靠。

  • 技术要深入到什么程度?

  • 做久了技术总要转型管理?

  • 我能做什么,我想做什么?

  • 一技之长,就是深耕你的专业技能,你的专业技术。(重点)

  • 独立做事,当你的一技之长达到一定深度的时候,需要开始思考如何独立做事。(创业)

  • 拥有事业,选择一份使命,带领团队实现它。(创业)

一技之长分五个层次

  • 栈内技术 - 是指你的前端专业领域技术

  • 栈外技术 - 是指栈内技术的上下游,领域外的相关专业知识

  • 工程经验 - 是建设专业技术体系的“解决方案”

  • 带人做事 - 是对团队协作能力的要求

  • 业界发声 - 工作经验总结对外分享,与他人交流

永远不要放弃一技之长,它值得你长期信仰持有

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue 等等。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一种用于构建用户界面的渐进式JavaScript框架,它可以通过封装组件来实现可复用、模块化以及易于维护的代码。下面我将介绍如何对Vue组件进行封装,并将其打包发布npm上供他人使用。 首先,我们需要创建一个Vue项目,并在项目中使用Vue CLI来进行组件的开发和构建。可以通过以下命令创建一个新的Vue项目: ``` vue create my-component ``` 接下来,您可以通过Vue CLI支持的任何方式(如单文件组件、JavaScript脚本等)创建自定义组件。在组件的开发过程中,可以利用Vue提供的各种功能和特性,比如计算属性、生命周期钩子函数、模板语法等。确保你的组件功能完备、可复用且易于理解。 完成组件的开发后,我们需要将其打包成可用的npm包。Vue CLI可以帮助我们自动进行打包,只需执行以下命令: ``` npm run build ``` 该命令将生成一个dist文件夹,其中包含了打包后的组件代码。 接下来,我们需要在项目的根目录中创建一个package.json文件,用于描述我们的npm包,并设置一些配置信息。其中,name字段用于定义npm包的名称,version字段用于定义npm包的版本号。其他字段根据您的需要进行设置。然后,执行以下命令将package.json文件拷贝到dist文件夹中: ``` cp package.json dist/ ``` 然后,我们需要登录到npm官方网站,并创建一个账户。接着,使用以下命令进行登录: ``` npm login ``` 在登录成功后,使用以下命令发布npm包: ``` npm publish dist/ ``` 完成上述步骤后,您的自定义Vue组件就已经发布到了npm上。其他开发者可以通过以下命令安装并使用您的组件: ``` npm install your-component ``` 然后,在他们的Vue项目中,可以通过import语句引入您的组件,并在模板中使用它。 至此,我们已经学习了如何封装自定义Vue组件,并通过npm发布,供他人使用。希望这能帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值