Свертывание не будет связывать зависимость типов - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь создать библиотеку компонентов с реагирующими компонентами.Я хотел бы сохранить мои типы проп в библиотеке как документацию, а не удалять их во время сборки.Проблема в том, что накопительный пакет не объединяет в себе все функции типов проп.Разрешить эти пакеты, чтобы он закончился ошибкой.

Моя конфигурация накопления выглядит следующим образом:

import babel from "rollup-plugin-babel";
import commonjs from "rollup-plugin-commonjs";
import resolve from "rollup-plugin-node-resolve";
import pkg from "./package.json";

export default {
  input: "src/index.js",
  output: [
    {
      file: pkg.main,
      format: "cjs",
      sourcemap: true
    },
    {
      file: pkg.module,
      format: "es",
      sourcemap: true
    }
  ],
  external: Object.keys(pkg.peerDependencies || {}),
  plugins: [
    babel(),
    resolve(),
    commonjs({ include: ["./index.js", "node_modules/**"] })
  ]
};

Как я могу принудительно объединить и развернуть вызов require('./lib/ReactPropTypesSecret') во время сборки?

1 Ответ

0 голосов
/ 18 июня 2019

Оказывается, это было связано с двумя проблемами:

Заказ плагинов Rollup. Сначала должно быть разрешено, затем - обычные, а затем - бабель.

Вавилон должен исключить node_modules. Если Babel разберет их, они могут покинуть commonjs и решить, что не смогут разобрать их для объединения зависимостей.

Окончательный конфиг должен быть:

import babel from "rollup-plugin-babel";
import commonjs from "rollup-plugin-commonjs";
import resolve from "rollup-plugin-node-resolve";
import pkg from "./package.json";

export default {
  input: "src/index.js",
  output: [
    {
      file: pkg.main,
      format: "cjs",
      sourcemap: true
    },
    {
      file: pkg.module,
      format: "es",
      sourcemap: true
    }
  ],
  external: Object.keys(pkg.peerDependencies || {}),
  plugins: [
    resolve(),
    babel({
      exclude: "**/node_modules/**"
    }),
    commonjs({ include: ["./index.js", "node_modules/**"] })
  ]
};
...