Создание библиотеки Shakable дерева с накоплением - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь создать библиотеку компонентов с помощью накопительного пакета 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 в моемпакет не был удален как мертвый код.

Что я делаю не так?

...