rollup和babel版本:
"rollup": "^2.75.7"
"@babel/core": "^7.18.6"
rollup配置:
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import { babel } from '@rollup/plugin-babel';
import typescript from '@rollup/plugin-typescript';
import postcss from 'rollup-plugin-postcss';
import image from '@rollup/plugin-image';
import replace from '@rollup/plugin-replace';
import serve from 'rollup-plugin-serve';
import livereload from 'rollup-plugin-livereload';
const config = {
input: 'src/index.tsx',
output: {
file: 'build/index.js',
format: 'umd',
sourcemap: true,
},
plugins: [
replace({
preventAssignment: true,
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
}),
resolve(),
commonjs(),
babel({
babelHelpers: 'bundled',
exclude: '**/node_modules/**',
extensions: ['.js', '.jsx', '.ts', '.tsx'],
}),
typescript({ tsconfig: './tsconfig.json' }),
image(),
postcss(),
serve({
contentBase: ['', 'public'],
host: 'localhost',
port: 3000,
}),
livereload({ watch: 'build' }),
],
};
export default config;
babel.config.js
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
},
"modules": false
}
],
"@babel/preset-typescript",
"@babel/preset-react"
],
"plugins": ["styled-jsx/babel"]
}
运行rollup --config ./rollup.config.js --watch --environment NODE_ENV:development
后,rollup好像没有读取babel.config.js,是rollup和babel的配置有什么地方写错了吗?
建议给一个在线链接来。
参考官网配置,是不是哪里遗漏了。
“这个设置有一些不寻常的地方。首先,我们设置 "modules": false ,否则 Babel 会在 Rollup 有机会做处理之前,将我们的模块转成 CommonJS ,导致 Rollup 的一些处理失败。其次,我们使用 external-helpers 插件,它允许 Rollup 在包的顶部只引用一次 helpers ,而不是每个使用它们的模块中都引用一遍(这是默认行为)。第三,我们将 .babelrc 文件放在 src 中,而不是根目录下。 这允许我们对于不同的任务有不同的 .babelrc 配置,比如像测试,如果我们以后需要的话 - 通常为单独的任务单独配置会更好。”