1.0.15 • Published 2 years ago

yutons-ui v1.0.15

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

yutons

项目初始化

yarn install

编译运行热部署开发环境

yarn serve

编译打包生产环境

yarn build

Lints and fixes files

yarn lint

封装成UI组件库

步骤1:调整目录

|-- examples // 原 src 目录,改成 examples 用作示例展示
|-- packages // 新增 packages 用于编写存放组件

步骤2:配置项目以支持新的目录结构

// 我们通过步骤二的目录改造后,会遇到两个问题。 
// 1、src 目录更名为 examples ,导致项目无法运行
// 2、新增 packages 目录,该目录未加入 webpack 编译
// 在根目录下新建一个vue.config.js 配置文件
// 重新配置入口,修改配置中的 pages 选项
// 新版 Vue CLI 支持使用 vue.config.js 中的 pages 选项构建一个多页面的应用。 
// 这里使用 pages 修改入口到 examples
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  pages: {
    // 修改项目入口文件
    index: {
      entry: 'examples/main.js',
      template: 'public/index.html',
      filename: 'index.html'
    }
  }
})
// 注:cli3 提供一个可选的 vue.config.js 配置文件。如果这个文件存在则他会被自动加载,所有的对项目和webpack的配置,都在这个文件中。
// 支持对 packages 目录的处理,修改配置中的 chainWebpack 选项
// packages 是我们新增的一个目录,默认是不被 webpack 处理的,所以需要添加配置对该目录的支持。
// chainWebpack 是一个函数,会接收一个基于 webpack-chain 的 ChainableConfig 实例。允许对内部的 webpack 配置进行更细粒度的修改。

const { defineConfig } = require('@vue/cli-service')
const path = require('path')
module.exports = defineConfig({
  transpileDependencies: true,
  pages: {
    // 修改项目入口文件
    index: {
      entry: 'examples/main.js',
      template: 'public/index.html',
      filename: 'index.html'
    }
  },
  // 扩展 webpack 配置,使 packages 加入编译
  chainWebpack: config => {
    // @ 默认指向 src 目录,这里要改成 examples
    // 另外也可以新增一个 ~ 指向 packages
    config.resolve.alias
      .set('@', path.resolve('examples'))
      .set('~', path.resolve('package'))

    config.module
      .rule('js')
      .include.add(path.resolve(__dirname, 'packages')).end()
      .include.add(path.resolve(__dirname, 'examples')).end()
      .use('babel')
      .loader('babel-loader')
      .tap(options => {
        // 修改它的选项...
        return options
      })
  }
})

步骤3:编写自定义组件

在packages中分别创建component1、component2组件

|-----packages
  |-----index.js
  |------component1
      |-----src
          |-----main.vue
      |-----index.js
   |------component2
      |-----src
          |-----main.vue
      |-----index.js
具体内容参考代码

步骤4:在examples中引入组件

// examples/main.js
// 导入组件库
import yutonsUI from '../packages/index'
// 注册组件
Vue.use(yutonsUI)
<!--examples/App.vue-->
<template>
  <div id="app">
    <component1></component1>
    <component2></component2>
  </div>
</template>

<script>
export default {
  name: 'App',
  components: {}
}
</script>

<style lang="scss">

</style>

步骤5:发布到npm

# .npmignore添加要忽略提交到npm的文件或目录

# package.json
  "main": "lib/yutons-ui.umd.min.js",
  "author": {
    "name": "雨桐"
  },
  "scripts": {
    # 略 
    "lib": "vue-cli-service build --target lib --dest lib packages/index.js"
  },
# 登陆npm
# 首先确保切换会npm镜像源
npm config set registry https://registry.npmjs.org

# 打包
npm run lib
# 登陆(输入用户名、密码、邮箱、邮箱验证码),发布
npm login
npm who
# 发布
npm publish 

参考文档

vue2 编写自己的组件库,并发布到npm

手把手使用VuePress搭建Element的组件库文档官网

1.2.0

2 years ago

1.0.9

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.15

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.1

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago