我似乎无法让rollup-plugin-babel在我的打字稿项目中工作。 .ts代码进行编译和汇总程序包,生成了地图文件,但babel不会对其进行编译。
如果我运行npx babel lab.js --out-file lab-es5.js
,通天塔也可以正常工作。
这是我的rollup.config.js
import commonjs from 'rollup-plugin-commonjs';
import nodeResolve from 'rollup-plugin-node-resolve';
import typescript from 'rollup-plugin-typescript2'
import sourcemaps from 'rollup-plugin-sourcemaps';
import babel from 'rollup-plugin-babel';
var plugins = [
nodeResolve({
module: true,
jsnext: true,
main: true,
preferBuiltins: false
}),
commonjs({
include: 'node_modules/**', // Default: undefined
ignoreGlobal: false, // Default: false
}),
typescript(/*{ plugin options }*/),
babel({
exclude: 'node_modules/**',
runtimeHelpers: true
}),
sourcemaps()
];
export default [
{
input: 'src/lab.ts',
plugins,
output: {
name: "TablePager",
file: 'lab.js',
format: 'iife',
sourcemap: true
}
}
];
这是我的.babelrc
{
"presets": ["@babel/preset-env"]
}
如果您对我做错了什么有任何线索,我会很好的。
答案 0 :(得分:0)
您的.babelrc
丢失了@babel/preset-typescript
。尝试安装软件包并将其添加到配置中:
{
"presets": [
"@babel/preset-env",
"@babel/preset-typescript"
]
}
答案 1 :(得分:0)
答案 2 :(得分:0)
默认情况下,@rollup/plugin-babel
已启用以下扩展名:
.js
.jsx
.es6
.es
.mjs
因此,将@rollup/plugin-babel
与@rollup/plugin-typescript
一起使用时,有两点需要设置。
由于某些原因,文档说默认情况下,所有文件都已转译。具有TypeScript扩展名的文件不是这种情况。因此,您必须手动设置include
选项。
幸运的是,对于第二个选项,您可以告诉它使用全局模式。设置文件夹无效。
这里是一个例子。在这种情况下,所有要转换的TypeScript文件都位于src
文件夹中。
"use strict";
import babel from "@rollup/plugin-babel";
import typescript from "@rollup/plugin-typescript";
import { resolve } from "path";
export default {
plugins: [
typescript(),
babel({
extensions: [".ts"],
include: resolve("src", "**", "*.ts")
})
];
};