Pracuję nad projektem zawierającym moduł Vuex i abstrakcyjne komponenty, z których użytkownicy mogą korzystać.Jak opublikować bibliotekę komponentów Vue.js?
Chciałbym opublikować to na NPM, aby oczyścić moją bazę kodową i odciągnąć to od mojego projektu jako solidny sprawdzony moduł. Mam określony plik główny w package.json
załadować indeks, który importuje wszystko chcę wystawiać:
https://github.com/stephan-v/vue-search-filters/
Indeks zawiera to w tej chwili:
import AbstractFilter from './src/components/filters/abstract/AbstractFilter.vue';
import Search from './src/store/modules/search';
module.exports = {
AbstractFilter,
Search
};
Aby to działało muszę aby to przenieść, ponieważ kompilator babel zwykle nie przenosi plików zaimportowanych z node_modules (Popraw mnie, jeśli się mylę tutaj). Poza tym prawdopodobnie byłby to dobry pomysł, aby mógł być używany przez różne systemy.
Jak mogę przenieść tylko te pliki, których potrzebuję, mimo że korzystam z pakietu Web Pack? Czy muszę utworzyć osobną konfigurację dla tego?
Jak wygląda taka konfiguracja? Wiem, że vue-cli ma komendę build
dla jednego pojedynczego komponentu pliku, ale jest to trochę inne.
Wszelkie wskazówki i sugestie dotyczące przeniesienia czegoś takiego są mile widziane.
Edit
Wydaje się to dobry początek, a także:
https://github.com/Akryum/vue-share-components
Najbardziej import rzeczą dla użytkowników WebPACK zauważyć jest to, że trzeba transpile plików w UMD, które mogą ustawiane przez:
libraryTarget: 'umd'
To sprawi, że twoje transporty będą Universal Module Definition
, co oznacza kod będzie pracować w różnych środowiskach, takich jak AMD, CommonJS, jako prosty tagu script, itp
Poza tym, że jest import do zapewnienia externals w WebPacka:
externals: {}
Tutaj można określ, które biblioteki są Twoimi użytkownikami projektu, ale nie powinny być wbudowane w Twój plik dist
. Na przykład nie chcesz, aby biblioteka Vue została skompilowana/przeniesiona do źródła twojego pakietu NPM.
Będę badać nieco więcej, jak dotąd najlepsze opcje wyglądają jak samemu stworzyć własny projekt Jeśli chcę elastyczności i testów jednostkowych.
WebPACK docs
Jest to również przydatna strona, która idzie w głąb, jak opublikować coś z Webpack:
https://webpack.js.org/guides/author-libraries/#add-librarytarget
Dzięki temu wygląda na bardzo dobry początek i prawdopodobnie to, czego szukam. Sprawdzę to dziś wieczorem i dam znać, jeśli odpowie na moje pytanie. –
Po prostu ciekawy, czy utworzyłeś konfigurację webpacka dla tego projektu sam, czy wziąłeś części z innego projektu, który również buduje dla 'umd'? –
Ponadto, w jaki sposób rozwijasz się w tym projekcie? Nie ma żadnego obserwatora ani importu Vue.js. Wygląda na to, że możesz się rozwijać tylko poprzez podpięcie całego projektu do repo, które faktycznie importuje Vue, jak sobie z tym radzisz? Najlepiej byłoby mieć całkowicie niezależny projekt, aby móc przeprowadzać testy jednostkowe, testy e2e itp. –