create-react-app 代理服务器配置错误:::必须使用import加载ES模块

e5nszbig  于 2个月前  发布在  React
关注(0)|答案(6)|浏览(28)

当你在运行npm start时遇到崩溃,原因是你使用了新的ES6模块,而你的setupProxy.js文件中使用了require()来加载ES模块。错误提示你需要使用import来加载ES模块,或者将setupProxy.js文件重命名为以.cjs结尾的文件,或者从C:\Users\d\projects\v\package.json中删除"type": "module"。

你可以尝试以下方法解决问题:

  1. 将setupProxy.js文件重命名为proxy.js。
  2. 修改proxy.js中的代码,使用import()替换require()。
  3. 在C:\Users\d\projects\v\package.json中删除"type": "module"。

修改后的proxy.js文件:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const proxy = require('http-proxy-middleware');
const target = process.env.PROXY_TARGET;
if (!target) {
 throw new Error('Please specify the proxy target in your environment variables.');
}
export default (app) => {
 app.use(
 '/api/v1',
 proxy({
 target,
 changeOrigin: true,
 secure: false,
 }),
 );
};
7kjnsjlb

7kjnsjlb2#

我创建了一个新项目,并成功地复制了这个错误。你可以克隆它并尝试。

y0u0uwnf

y0u0uwnf3#

这个问题已经被自动标记为过时,因为它没有任何最近的活动。如果没有发生任何进一步的活动,它将在5天后被关闭。

z18hc3ub

z18hc3ub4#

嘿,大家有解决这个问题的窍门吗?

wgx48brx

wgx48brx5#

太酷了,两年过去了,仍然没有解决方案。

cwdobuhd

cwdobuhd6#

这个问题已经被自动标记为过时,因为它没有任何最近的活动。如果没有发生任何进一步的活动,它将在5天后被关闭。

相关问题