Eksport Vue dan Vuex dalam pakej npm tersuai
P粉014218124
P粉014218124 2024-03-27 20:02:39
0
1
318

Saya cuba memecahkan projek Vue/Vuex ke dalam pakej npm yang dihoskan secara persendirian. Saya rasa saya akan sampai ke sana tetapi saya tidak pasti susun atur semasa saya, setakat ini saya telah:

src/
├── BrokerProposal
│   ├── FormInputs
│   ├── index.js
│   └── modals
└── store
    ├── index.js
    └── modules
        └── proposal
            ├── actions
            ├── getters
            ├── helpers
            ├── mutations
            └── states
                └── validations

Matlamat saya adalah untuk menjadikan direktori BrokerProposal boleh diimport, yang dilakukan melalui fail index.js pertama:

const BrokerProposal = require('./BrokerCalculator.vue');

function install(Vue) {
    if (install.installed) return;
    install.installed = true;
    Vue.component("v-broker-proposal", BrokerProposal);
  }
  
const plugin = {
    install
};

let GlobalVue = null;
if (typeof window !== "undefined") {
    GlobalVue = window.Vue;
} else if (typeof global !== "undefined") {
    GlobalVue = global.vue;
}
if (GlobalVue) {
    GlobalVue.use(plugin);
}

BrokerProposal.install = install;

export default BrokerProposal;

Projek ini juga menggunakan vuex, jadi saya memecahkan mutator dll untuk keadaan ke dalam pakej ini untuk digunakan dengan BrokerProposal, pengguna akhir boleh mengikat storan ini selepas mengimport, berikut ialah fail index.js:

import Vue from 'vue'
import Vuex from 'vuex'

// Vuex Modules
import tabs from './modules/tabs'
import proposal from './modules/proposal'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    tabs,
    proposal,
  },
})

export default store

Saya rasa saya harus memasukkan fail index.js lain pada tahap yang sama dengan /src kerana terdapat bahagian "utama" dalam fail package.json yang perlu menunjuk kepada sesuatu?

P粉014218124
P粉014218124

membalas semua(1)
P粉463840170

Kesan sampingan seperti Vue.use(Vuex)GlobalVue.use(plugin) harus dielakkan kerana ia boleh mengganggu projek menggunakan pakej ini. Adalah menjadi tanggungjawab projek untuk menyediakan pemalam dengan contoh Vue yang sesuai.

Semua eksport awam boleh dinamakan sebagai eksport di pintu masuk, contohnya src/index.js:

export { default as BrokerProposal } from './BrokerProposal';
export { default as store } from './store';

Ia juga merupakan amalan yang baik untuk mengeksport komponen sekiranya anda perlu mengimportnya secara tempatan, dan bukannya bergantung pada Vue.component mendaftarkannya secara global.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan