近来在工作中写了一个面向 PC 端的 Vue 转动组件,关于 PC 端的转动组件之前也用过一些,然则没有找到迥殊惬意的,所以本身想着把这个组件开源宣布出去,愿望能够帮到和我有相似需求的人吧!
目的
- 具有 Dev 形式,能够边测试边开辟组件
- 构建完成后宣布到 npm 上
- 这个组件能够全局注册 也能够部分运用
- 具有 demo 才能 依托于 github 的 pages 功用 直接展现该组件的运用结果
构建基础模版
起首我们须要 vue-cli 来为我们天生一个项目的初始模板。
npm install -g @vue/cli
# OR
yarn global add @vue/cli
vue init webpack-simple <project-name>
cd project-name
npm init
git init
npm init 和 git init的历程就略过了
修正目次
接下来在src/
目次下竖立一个 components 目次,随后在 components 目次下竖立你的组件,比方scrollbars.vue
继承在src/
下竖立index.js
这个 js 将会在 build 形式下作为进口 js 举行打包,假如你要导出多个组件也是能够的,只需导出一个对象即可
import Scrollbars from './components/scrollbars.vue'
Scrollbars.install = Vue => Vue.component(Scrollbars.name, Scrollbars)
export default Scrollbars
设置打包环境
为了轻易我们的开辟,须要设置一下 webpack 的打包设置。
起首在 package.json 里增添一条剧本 dmeo 该敕令的作用是一键打包出一个用于 demo 页面的主 js 文件
"demo": "cross-env NODE_ENV=demo webpack --progress --hide-modules"
接下来就是比较中心的 webpack 设置
const NODE_ENV = process.env.NODE_ENV
// 为了轻易在差别形式下的途径设置,我们设置三个map对象来婚配详细的形式,削减庞杂的推断
// 三种基础形式
// 1 build - production 用于打包中心组件代码 他人引入的就是这个文件
// 2 dev - development 开辟形式 调试你的组件
// 3 demo - 打包demo资本 打出来的js是包括完全的vue源码的
const enteyMap = {
production: './src/index.js',
development: './src/main.js',
demo: './src/main.js'
}
const pathMap = {
production: './dist',
development: './demo',
demo: './demo'
}
const publicMap = {
production: '/dist/',
development: '/demo/',
demo: '/demo/'
}
module.exports = {
entry: enteyMap[NODE_ENV], // 引入途径 build形式下直接引入组件本身
output: {
path: path.resolve(__dirname, pathMap[NODE_ENV]), // 输出途径
publicPath: publicMap[NODE_ENV], // 资本引入途径 为了轻易我们的demo打包 开辟形式和demo形式雷同
filename: 'vue-scrollbars.js', // 你的组件称号
library: 'vue-scrollbars', // 填写组件称号即可 人家能够经由过程这个称号来引入
libraryTarget: 'umd',
umdNamedDefine: true
}
}
举行开辟
因为我们修正了 publicPath 我们须要修正一下index.html
的 js 途径
<script src="./demo/vue-scrollbars.js"></script>
npm run dev
最先开辟吧,恣意的在app.vue中引入你的组件并举行调试开辟
竖立demo
npm run demo
打包完成后你能够尝试在工程根目次运转http-server
来搜检demo可否一般运转。
到这一步你能够push到你的github堆栈,并把gh-pages设置成master分支,谁人地点应当就可以展现你的demo了,别忘了放到readme中让人人看看哦!
宣布
在末了的宣布前记得在package.json
内里填写上版本,关键词,形貌,license等信息,而且写好README.md
,LICENSE
等文件. 如许能够更好的让他人相识和运用你的项目哦。
npm login
npm publish
注重可能会涌现重名状况,这时刻请运用你账户的定名空间
修正你的 package.json "name": "@zhangzhengyi12/vue-scrollbars"
他人引入的时刻也要
加定名空间
末了照样留点私心,宣扬一下近来写的一个转动组件,重要面向 PC 端 ,假如你有相似的需求 无妨看看[https://github.com/zhangzheng…]