前提:1 .会vue基础,以及vue的组件(官网:https://cn.vuejs.org/v2/guide/components.html)相关的基础。
因为本文主要是讲如何把一个vue组件做成npm包并发布。
分为2大步骤:
一。按照相应格式写我们的vue代码(就如同写一个jquery插件时,有其固定的格式一样)。
二。发布到npm上的流程
<强>一、书写一个vue组件强>
不用脚手架,我们自己从头开始做起,因为脚手架会附带很多没用的东西。
就做一个最简单的vue组件:就是传入用户名字,页面打印出“你好,用户名”的组件。
比如,我的预期目标是其他vue项目中,npm安装本组件后,可以如此使用该组件:
& lt; template> & lt; div类=爸甘北? & lt; div类=癲emo1”比; & lt;味精:数据=" https://www.yisu.com/zixun/myData "祝辞& lt;/Msg> & lt;/div> & lt;/div> & lt;/template> & lt; script> 从“npm-study-hamupp”进口味精; 出口默认{ 组件:{ 味精 }, 数据(){ 返回{ myData: { 名称:“天天”, :“中国” } } } } & lt;/script>
然后网页上会显示:
<强> OJBK,现在开搞:强>
1。新建一个空文件夹,进入到根目录下。执行
npm init
初始化项目,然后会让你填一些项目相关的信息,跟着提示填就是了。没啥说的。注意名字不要和现有的其他npm包重名了,不然一会儿发npm包的时候会失败,可以先去npmjs.com搜一下有没有重名的。
这一步完成后,会生成package.json文件。
2。由于本例是一个vue的组件包,而且使用了es6和webpack,所以在devDependencies字段中,应该至少加入以下依赖:
package.json
{ “名称”:“npm-study-hamupp”, “版本”:“1.0.3”, “描述”:“”, “主要”:“dist/helloMsg.min.js”, "脚本":{ “测试”:“echo \”的错误:没有测试指定\”,,退出1”, “开始”:“webpack-dev-server——热——内联”, “构建”:“webpack——display-error-details配置webpack.config.js” }, “库”:{ “类型”:“git”, “url”:“git + https://github.com/hamuPP/npmStudy.git” }, “作者”:“”, “许可证”:“ISC”, “虫子”:{ “url”:“https://github.com/hamuPP/npmStudy/issues” }, “主页”:“https://github.com/hamuPP/npmStudy readme”, " devDependencies ": { :“babel-core ^ 6.26.0”, :“babel-loader ^ 7.1.2”, :“babel-plugin-transform-object-rest-spread ^ 6.26.0”, :“babel-plugin-transform-runtime ^ 6.23.0”, :“babel-polyfill ^ 6.26.0”, :“babel-preset-es2015 ^ 6.24.1”, :“css-loader ^ 0.28.7”, :“es6-promise ^以下4.4.1”, “少”:“^ 2.7.3”, :“less-loader ^你”, :“style-loader ^ 0.19.0”, :“url-loader ^ 0.6.2”, :“vue ^ 2.5.9”, :“vue-hot-reload-api ^ 2.2.4”, :“vue-html-loader ^ 4”, :“vue-loader ^ 13.5.0”, :“vue-router ^ 3.0.1”, :“vue-style-loader ^ 3.0.3”, :“vue-template-compiler ^ 2.5.9”, :“vuex ^ 3.0.1”, :“webpack ^ 3.9.1”, :“webpack-dev-server ^ 2.9.5” } }
这些依赖的用处分别都是啥,自己查。
3。执行npm安装、下载这些依赖包。
4。新建2个文件夹:dist和src,名字按照个人习惯吧。我习惯dist代表发布时的目录,src是开发目录.dist里面的js是到时候通过webpack打包后的文件。待会只会提交dist目录到npm官网上,src不提交。
src里:我们比较常规的写一个vue组件
& lt;风格范围lang=吧佟北?
@ import“风格/common.less”;
& lt;/style>
& lt; template>
& lt; div类=癿sg-wrapper”比;
& lt; span>你好! & lt;/span>
& lt;跨类="帐户"在{{data.name}} & lt;/span>
& lt;/div>
& lt;/template>
& lt; script>
出口默认{
名称:“味精”,
数据(){
返回{}
},
道具:{
数据:{
对象类型:
}
},
方法:{
},
创建(){
让=这个;
}
}
& lt;/script>