详解如何制作并发布一个vue的组件的npm包

2020-06-13 10:39:55易采站长站整理

前提:1.会vue基础,以及vue的组件(官网:https://cn.vuejs.org/v2/guide/components.html)相关的基础。

因为本文主要是讲如何把一个vue组件做成npm包并发布。

分为2大步骤:

一.按照相应格式写我们的vue代码(就如同写一个jquery插件时、有其固定的格式一样)。

二.发布到npm上的流程

一、书写一个vue组件

不用脚手架,我们自己从头开始做起,因为脚手架会附带很多没用的东西。

就做一个最简单的vue组件:就是传入用户名字,页面打印出‘hello,用户名’的组件。

比如,我的预期目标是其他vue项目中,npm install本组件后,可以如此使用该组件:


<template>
<div class="index">

<div class="demo1">
<Msg :data="myData"></Msg>
</div>

</div>
</template>
<script>
import Msg from 'npm-study-hamupp';
export default {
components: {
Msg
},
data(){
return {
myData: {
name: '天天',
country: 'china'
}
}
}
}
</script>

然后网页上会显示:

OJBK,现在开搞:

1.新建一个空文件夹,进入到根目录下。执行


npm init

初始化项目。然后会让你填一些项目相关的信息,跟着提示填就是了。没啥说的。注意name不要和现有的其他npm包重名了,不然一会儿发Npm包的时候会失败,可以先去npmjs.com搜一下有没有重名的。

这一步完成后,会生成package.json文件。

2.由于本例是一个vue的组件包,而且使用了es6和webpack,所以在devDependencies字段中,应该至少加入以下依赖:

package.json


{
"name": "npm-study-hamupp",
"version": "1.0.3",
"description": "",
"main": "dist/helloMsg.min.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "webpack-dev-server --hot --inline",
"build": "webpack --display-error-details --config webpack.config.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/hamuPP/npmStudy.git"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/hamuPP/npmStudy/issues"
},
"homepage": "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.1.1",