2 回答
TA贡献1824条经验 获得超5个赞
最后我发现了问题所在。我需要@rollup/plugin-replace插件来替换process.env.NODE_ENV
这是工作代码
它还需要更多的命名出口。
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import babel from 'rollup-plugin-babel';
import { terser } from 'rollup-plugin-terser';
import nodePolyfills from 'rollup-plugin-node-polyfills';
import replace from '@rollup/plugin-replace';
import React from 'react';
import ReactIs from 'react-is';
import ReactDOM from 'react-dom';
const config = {
input: 'site/templates/scripts/master.js',
output: [
{
file: 'site/templates/scripts/master.min.js',
format: 'cjs'
}
],
plugins: [
replace({
"process.env.NODE_ENV": JSON.stringify("development")
}),
nodePolyfills(),
resolve({
browser: true
}),
commonjs({
include: /node_modules/,
namedExports: {
'react-is': Object.keys(ReactIs),
'react': Object.keys(React),
'react-dom': Object.keys(ReactDOM),
'@apollo/client': ['ApolloProvider', 'ApolloClient', 'HttpLink', 'InMemoryCache', 'useQuery', 'gql'],
'styled-components': [ 'styled', 'css', 'ThemeProvider' ]
}
}),
babel({
babelrc: true,
exclude: 'node_modules/**'
}),
terser()
]
};
export default config;
TA贡献1853条经验 获得超6个赞
从最新@rollup/plugin-commonjs版本开始,默认处理 namedExports。
也尝试使用这个 rollup babel 配置,需要@babel/preset-react安装模块
babel({
exclude: "node_modules/**",
presets: ["@babel/preset-react"],
babelHelpers: "bundled",
}),
自发布之日起,大多数汇总插件都已命名空间,因此请尝试重新安装@rollup/plugin-babel
添加回答
举报
