Как объединить локальные файлы машинописного текста в основной пакет с помощью Rollup

Я пытаюсь создать модуль npm, который можно будет использовать в браузере.

Я использую машинописный текст и свертку.

My tsconfig.json is:

{
  "compilerOptions": {
    "module": "CommonJS",
    "outDir": "lib",
    "strict": true,
    "rootDir": "src"
  }
}

а мой rollup.config.js:

import typescript from "@rollup/plugin-typescript";

export default {
  input: "src/index.ts",
  output: {
    dir: "lib",
    format: "iife",
  },
  plugins: [typescript()],
};

Внутри src/index.ts у меня следующее:

// src/index.ts
import log from './log'

const myFn = () => {
 ...myFn code
}

Моя проблема в том, что в комплекте я получаю следующее:

// lib/index.js bundle
var log_1 = require("./log");

Когда я действительно хочу связать файл log внутри основного lib/index.js.

Как я могу сделать это с помощью Typescript и накопительного пакета?

Примечание. Я пытался добавить outFile (ts docs), но это не поддерживается @rollup / plugin-typescript.

Должен ли я сам скомпилировать tsc, а затем собрать пакет?


person Karl Taylor    schedule 06.01.2021    source источник
comment
Я все еще ищу ответ на этот вопрос, но если кто-то столкнется с этим вопросом, я действительно перешел на Webpack, и это было намного проще.   -  person Karl Taylor    schedule 07.01.2021


Ответы (1)


Rollup требует, чтобы компилятор TypeScript сгенерировал модули ES, чтобы правильно связать ваш код. Вам нужно будет изменить формат модуля на ESNext вместо CommonJS в вашем tsconfig.json или изменить конфигурацию @rollup/plugin-typescript в конфигурации Rollup:

typescript({ module: "ESNext" })

Начиная с rollup / plugins # 788, вы получите предупреждение, если он не настроен правильно.

@ rollup / plugin-typescript: Rollup требует, чтобы TypeScript создавал модули ES. К сожалению, в вашей конфигурации указан модуль, отличный от esnext. Если вы не знаете, что делаете, измените модуль на esnext в целевом файле tsconfig.json или параметрах плагина.

person Bryan Terce    schedule 26.03.2021