在 github 建立一个云端仓库
右上角+号New repository
,比如我在自己的shenyizhou
账号下建了一个zy-ui
仓库,默认不用 README.md
用 vue-cli 初始化一个本地仓库
vue init webpack-simple zy-ui
按自己需求填写
然后进项目yarn
或npm i
安装依赖
与云端的 Git 仓库建立关联
进入项目运行以下命令:
1 | git init |
注意:
-
git remote add origin https://github.com/shenyizhou/zy-ui.git
只能运行一次,如果关联错了,请删除项目文件夹下的隐藏文件夹.git
,重新运行git remote add
命令。 -
git log --pretty=online
可以看提交的 commit id,--pretty=online
参数将 commit 信息都显示在一行。 -
git reset --hard commit id
设置版本回退到 commit id 对应的版本。 - 如果报
could not resolve host: github.com
错误,在 hosts 文件底部添加192.30.253.112 github.com
。 - 如果是 github Group 开发,
git push
报 403 没有权限的错误,请把 Group 角色的Member
权限改为Owner
权限。
修改 Webpack 配置文件
Webpack 是用来将 Vue 组件打包成 JS 的重要工具,也能支持热重载。
修改webpack.config.js
文件,把生成文件名即配置output
中的filename
改为zy-ui.min.js
:
1 | entry: './src/main.js', // 入口文件名 |
修改入口文件
Webpack 的入口文件也就是我们要执行的语句和生成的组件,之后也将写入package.json
的main
字段中作为 NPM 的入口。
修改入口文件./src/main.js
(例子是将 label 和 input 组合的ZyInputGroup
组件):
1 | import InputGroup from "./input-group/index.js"; |
这里一开始仿照 ElementUI 用了module.exports = {}
的写法,但是import
和module.exports
无法用在同一个文件中,最后改为ES6 Module
的写法。
配置就到此完毕,等写好组件运行yarn build
或npm run build
命令,Webpack 就会帮我们打包生成zy-ui.min.js
啦。
编写组件
在 src 中建立 input-group 文件夹,并创建index.js
(也就是被上文的main.js
所引入的文件):
1 | import Component from "./input-group"; |
并创建input-group.vue
(也就是我们这次要写的组件):
1 | <template> |
到此为止组件就算创建完成啦,运行yarn build
命令就会生成zy-ui.min.js
,然后在 HTML 页面中引入就 OK 啦。
这时候如果报Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 8.x
错误,说明node-sass
版本与当前环境不匹配,可以在项目下运行npm rebuild node-sass
命令解决。
测试组件
直接引入 zy-ui.min.js 测试
将根目录的index.html
改为:
1 |
|
最后用yarn build
命令生成zy-ui.min.js
,再在页面上测试。
使用 Webpack 实时预览
使用yarn dev
或npm run dev
命令,访问http://localhost:8080/
,修改组件内容就能实时在页面上看到效果。
上传到 NPM
先在package.json
中添加或修改字段(NPM 会使用这些字段):
1 | "main": "dist/zy-ui.min.js", |
其中:
-
mian
指定入口文件,即项目的入口。 -
private
默认是 true 私人的,需要改为 false,不然会无法发布。 -
repository
指定代码存放地址。
接下来注册一个 NPM 账号,有以下两种方式:
- 官网注册。
- npm adduser 命令。
首次上传操作前需要输入npm login
登录,按照提示输入用户名、密码和邮箱。
如果遇到npm ERR! no_perms Private mode enable, only admin can publish this module:
问题,重新设为原来的镜像npm config set registry=http://registry.npmjs.org
。
最后一个简单的上传命令npm publish
就 OK 啦。
如果提示创建名有类似或已存在,只要修改package.json
中的name
即可。
其他配置
代码格式
可以在根目录中添加.prettierrc.json
:
1 | { |
并在Visual Studio Code
中添加Prettier - Code formatter
插件,并修改以下首选项的设置便可以在相应时点自动格式化:
1 | "editor.formatOnPaste": true, |