Я пытаюсь создать библиотеку компонентов с помощью накопительного пакета Vue и Vue, который может быть доступен для дерева, когда другие импортируют его.Моя установка выглядит следующим образом:
Соответствующая выдержка из package.json
{
"name": "red-components-with-rollup",
"version": "1.0.0",
"sideEffects": false,
"main": "dist/lib.cjs.js",
"module": "dist/lib.esm.js",
"browser": "dist/lib.umd.js",
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w"
},
"devDependencies": {
/* ... */
}
И это весь мой rollup.config.js
import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import vue from "rollup-plugin-vue";
import pkg from "./package.json";
export default {
input: "lib/index.js",
output: [
{
file: pkg.browser,
format: "umd",
name: "red-components"
},
{ file: pkg.main, format: "cjs" },
{ file: pkg.module, format: "es" }
],
plugins: [resolve(), commonjs(), vue()]
};
У меня довольно простой проектструктура с файлом index.js
и 2 компонентами Vue:
root
∟ lib
∟ index.js
∟ components
∟ Anchor.vue
∟ Button.vue
∟ package.json
∟ rollup.config.js
My index.js
импортирует файлы Vue и экспортирует их:
export { default as Anchor } from "./components/Anchor.vue";
export { default as Button } from "./components/Button.vue";
export default undefined;
Если я этого не сделаюсделать export default undefined;
каким-либо образом приложение, импортирующее мою библиотеку, не может найти экспорт.Weird.
Теперь, когда я создаю другое приложение и импортирую red-components-with-rollup
следующим образом:
import { Anchor } from "red-components-with-rollup";
и открываю пакет из своего приложения, я также найду исходный код Button.vue
в моемпакет не был удален как мертвый код.
Что я делаю не так?