汇总是否支持汇总配置文件中的打字稿?

Fre*_*ind 11 rollup typescript

看来我们可以使用打字稿来编写汇总配置文件。说,我可以创建一个名为 的文件rollup.config.ts,内容为:

import typescript from 'rollup-plugin-typescript2';

export default {
  input: 'main.ts',
  plugins: [typescript()],
  output: {
    file: 'bundle.js',
    format: 'cjs',
  },
  external: ['lodash']
}
Run Code Online (Sandbox Code Playgroud)

如果我将汇总调用为rollup -c rollup.config.ts.

但是如果我在其中使用一些类型:

import typescript from 'rollup-plugin-typescript2';
import {RollupFileOptions} from "rollup";

const config: RollupFileOptions = {
  input: 'main.ts',
  plugins: [typescript()],
  output: {
    file: 'bundle.js',
    format: 'cjs',
  },
  external: ['lodash']
}

export default config;
Run Code Online (Sandbox Code Playgroud)

它会报告如下错误:

$ rollup -c rollup.config.ts
[!] Error: Unexpected token
rollup.config.ts (4:12)
2: import {RollupFileOptions} from "rollup";
3: 
4: const config: RollupFileOptions = {
                 ^
Run Code Online (Sandbox Code Playgroud)

有没有可能让它发挥作用?我尝试将 ts-node 与

小智 30

您可以在 TypeScript 中创建汇总配置

import { RollupOptions } from "rollup";

const bundle: RollupOptions = {
//...
}
export default bundle
Run Code Online (Sandbox Code Playgroud)

并与它一起使用

import { RollupOptions } from "rollup";

const bundle: RollupOptions = {
//...
}
export default bundle
Run Code Online (Sandbox Code Playgroud)

您需要添加到tsconfig.jsonrollup.config.ts中包含的文件。

rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript
Run Code Online (Sandbox Code Playgroud)


Ran*_*lta 19

同时,虽然它还不受支持,但 JSDoc 可能有助于对汇总配置进行类型检查。(它只适用于支持 JSDoc 的编辑器。例如 VSCode)。

/** @type {import('rollup').RollupOptions} */
const options = {
  ...
};

export default options;
Run Code Online (Sandbox Code Playgroud)


Dan*_*ore 11

您可以创建一个单独的rollup.config.js,如下所示:

require('ts-node').register({
  compilerOptions: {
    module: 'CommonJS'
  },
  // and other tsconfig.json options as you like
});

module.exports = require('./rollup.config.ts');
Run Code Online (Sandbox Code Playgroud)

npm install --save-dev ts-node当然需要。然后跑步npx rollup -c,你就可以参加比赛了。


Sud*_*noi 8

使用Rollup v2.52.0,您可以将--configPlugin选项指定为:

rollup --config rollup.config.ts --configPlugin typescript
Run Code Online (Sandbox Code Playgroud)

  • 为此,您需要将“@rollup/plugin-typescript”和“typescript”安装为开发依赖项。 (3认同)

Eli*_*ski 6

实际上是可能的,只需导入defineConfig即可rollup,这将为您提供很好的 IDE 建议,例如:

//rollup.config.js

import { defineConfig } from 'rollup';

const rollupConfig = defineConfig({
  input: 'src/index.tsx',
  output: [
    {
      file: 'dist/bundle.cjs.js',
      format: 'cjs',
    },
  ],
});

export default rollupConfig;
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案。Rollup 文档也建议这样做:https://rollupjs.org/guide/en/#config-intellisense (2认同)