1.环境准备,需要装好node,注册号npm账号,这里不做详解 2.创建编写组件和方法的文件夹package 3.在文件夹中创建需要定义的组件,并且加上name属性 < template> < div> < button> 按钮组件< / button> < / div> < / template> < script> export default { name : 'ComButton' } < / script> const func1 = ( ) => { return 'test1' ; } const func2 = ( ) => { return 'test2' ; } export default { func1, func2}
4.然后在package文件中新建index.js引入写好的组件和方法 import ComBotton from './com-button/index' import publicFunc from './public-func/index' const coms= [ ComBotton] const install = function ( Vue ) { coms. forEach ( ( com ) => { Vue. component ( com. name, com) ; } ) ; } ; export default { install, publicFunc }
5.引入完成之后一定要先本地测试一下是否可用,如果可用再进行上传 import com from './package/index' Vue . prototype. $public = com. publicFuncVue. use ( com) < template> < div id= "app" > < ComButton> < / ComButton> < / div> < / template> < script> export default { mounted ( ) { console. log ( this . $public . func1 ( ) ) ; } } < / script>
6.验证可用之后,开始配置package.json进行自动化打包 "package" : "vue-cli-service build --target lib ./src/package/index.js --name zqcom --dest zqcom" "lib" : "vue-cli-service build --target lib --name tag-textarea --dest lib packages/index.js"
7.执行npm run package进行打包
8.打包完成之后会生成一个zqcom文件,这就是需要上传的npm包了,然后在“包的文件里执行npm init -y”进行包配置,这里主要配置包名称,和版本号 9.下面就是进行发包了,因为本地可能安装了淘宝镜像,所以先把镜像切换回来 npm config set registry= https: / / registry. npmjs. org
10.登陆npm账号 npm adduser登陆成功之后npm publish
11.下面就可以在项目中正常使用了 import zqcomfrom 'zqcom' Vue . prototype. $Public= zqcom. publicFuncVue. use ( zqcom) < template> < div id= "app" > < ComButton> < / ComButton> < / div> < / template> < script> export default { mounted ( ) { console. log ( this . $Public. func1 ( ) ) ; } } < / script>
12.补充说明 如果出现报错情况 Remove the 'private' field from the package . json to publish it. 查看打包之前的文件的package . json中的private 是否设置成了false , 一般是这里为true 造成的,可以改成false 或删除属性
点关注不迷路,感谢支持!