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
添加回答
舉報