Vue Cli 3は、必要に応じてコンポーネントを導入できるコンポーネントライブラリラックを構築する

10613 ワード

Ant-design、Elementのフレームワークには、コンポーネントをオンデマンドで導入する機能があります.どのコンポーネントを使用する必要があるか、どのコンポーネントを導入することで、不要なコンポーネントは私たちのプロジェクトにパッケージされません.私の下の手順に従って、皆さんも必要に応じて導入されたコンポーネントライブラリを構築できると信じています.
Vueプロジェクトの作成
vue create ui-demo

デフォルト設定でインストールOK?
babel-plugin-componentのインストール
npm i babel-plugin-component -D
babel-plugin-componentは、コンポーネントのオンデマンドロードを実現するために使用されるElement UIプラグインである.私たちはそれを私たちのコンポーネントライブラリに使用して、車輪を再構築する必要はありません.?
構成.babelrc
プロジェクトのルートディレクトリの下にbabelのファイルを作成し、構成は次のコードを参照して変更できます.
{
  "plugins": [
    [
      "component",
      {
        //       ,    package.json    name   
        "libraryName": "ui-demo",
        //         ,        ,          lib
        "libDir": "components",
      }
    ]
  ]
}

コンポーネントを格納するフォルダを作成
コンポーネントを格納するフォルダを構成したばかりである以上、次はこのようなフォルダを作成することに違いありません.私が配置したフォルダ名は.babelrcなので、私たちのフォルダ名はcomponentsです.
上記の操作が完了すると、私たちのプロジェクトディレクトリは基本的に構築され、以下のようになります.
書き込みコンポーネント
やっとコンポーネントを書く時になりました.componentsフォルダの下にcomponentsフォルダを新設して、私たちの最初のコンポーネントを保存します.Component1フォルダには、Component1のファイルとComponent1.vueのファイルがあります.ディレクトリは次のとおりです.index.jsコード:



export default {
  name: 'Component1'
}



Component1 -> Component1.vueコード:
import Component1 from './Component1.vue';

Component1.install = function (Vue) {
  Vue.component(Component1.name, Component1);
}

export default Component1;
Component1 -> index.jsの主な機能は、プラグインの形式でグローバルコンポーネントを登録することです.分からない仲間は猫の虎を描いて、微調整すればいいです.知りたいことはこのリンクを見てみましょう.
2番目のコンポーネントコードは出さないで、コピーして、cssスタイルをあげればいいです.index.jsフォルダルートディレクトリの下に、すべてのコンポーネントを統合するためのcomponentsが作成されます.index.jsコード:
import Compontent1 from './Component1/index'
import Compontent2 from './Component2/index'

const components = [
  Compontent1,
  Compontent2,
]

function install (Vue) {
  components.map(component => {
    Vue.component(component.name, component)
  })
}

export default {
  install,
  Compontent1,
  Compontent2,
}

ちょっと注意して、components -> index.jsも一緒に導き出す必要がありますが、注意しないと書かれてしまうかもしれません.
package.jsonの構成の変更または追加installにコマンドを追加します.
"lib": "vue-cli-service build --target lib --name index --dest package components/index.js"

一番後ろのscriptは、コンポーネントフォルダのルートディレクトリを格納しているcomponents/index.jsファイルです.あなたの状況に応じて変更してください.このコマンドが実行されると、index.jsのフォルダがパッケージ化されます.packageホワイトリストを追加し、npmにアップロードするファイルをパッケージします.
"files": [
    "components",
    "package"
]
filesは私たちがコンポーネントを保存するフォルダで、componentspackageがパッケージ化を命令して生成したフォルダで、私たちはこの2つのフォルダをリリースすればOKです.libを追加し、スタイルパスを設定します.
"style": "package/index.css"

パスは、私たちがパッケージしたstylepackageファイルです.index.cssを追加し、エントリを設定します.
"main": "components/index.js"

パスは、コンポーネントを格納するmainフォルダの下にあるcomponentsファイルです.index.jsprivateに設定します.
"private": false

このプロジェクトがプライベートプロジェクトではないことを設定してから、npm上でパブリッシュできます.
次は完全なfalseファイル構成です.
{
  "name": "ui-demo",
  "version": "0.1.0",
  "private": false,
  "main": "components/index.js",
  "style": "package/index.css",
  "files": [
    "components",
    "package"
  ],
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "lib": "vue-cli-service build --target lib --name index --dest package components/index.js"
  },
  "dependencies": {
    "core-js": "^2.6.5",
    "vue": "^2.6.10"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.7.0",
    "@vue/cli-plugin-eslint": "^3.7.0",
    "@vue/cli-service": "^3.7.0",
    "babel-eslint": "^10.0.1",
    "babel-plugin-component": "^1.1.1",
    "eslint": "^5.16.0",
    "eslint-plugin-vue": "^5.0.0",
    "vue-template-compiler": "^2.5.21"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "rules": {},
    "parserOptions": {
      "parser": "babel-eslint"
    }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions"
  ]
}

コードをパッケージ化
コンソールでpackage.jsonを実行してファイルをパッケージングし、パッケージングが完了するとnpm run libフォルダが1つ増えます.ファイルディレクトリは次のようになります.
パブリッシュnpm
#     ,        npm      
npm login
#     npm
npm publish

名前が占有されているので、プレゼンテーションは私が最近書いたプロジェクトでプレゼンテーションしました.
ライブラリのインストール
npm i vue95-ui

このライブラリはpackageファイルに導入されます.
import Vue from 'vue'
import App from './App.vue'
//     
// import vue95 from 'vue95-ui'
// Vue.use(vue95);

//     
import { Button95, Bar95 } from 'vue95-ui'

Vue.use(Button95);
Vue.use(Bar95);

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

これにより、独自のUIライブラリを使用できます.
私のこのプロジェクトの住所と照らし合わせて参考にすることができます.
github.com/didadi599/v…
本人公示番号❤