Reactjs React在构建时失败

Reactjs React在构建时失败,reactjs,Reactjs,让我的应用程序运行“npm启动”效果很好。 当我使用“npm run build”构建它并将服务器指向build文件夹时,它失败了。 控制台中的错误显示: Uncaught TypeError: Cannot set property 'executeGet' of undefined 我有一个包含一些函数的common.js文件。出现错误的一个以这种方式声明: const executeGet = async (url, options) => { return 'someth

让我的应用程序运行“npm启动”效果很好。 当我使用“npm run build”构建它并将服务器指向build文件夹时,它失败了。 控制台中的错误显示:

Uncaught TypeError: Cannot set property 'executeGet' of undefined
我有一个包含一些函数的common.js文件。出现错误的一个以这种方式声明:

const executeGet = async (url, options) => {
    return 'something';
}
module.exports.executeGet = executeGet;
嗯,很糟糕的是,在npm运行时,它可以工作,而在为构建文件夹提供服务时却失败了。但据我所知,webpack在构建时涉及到了一些问题,这可能是出了问题。 我已尝试修改声明(但仍然得到相同的错误):

或者甚至是这样(但它接着说:“未捕获引用错误:未定义导出”)

My package.json如下所示:

{
  "dependencies": {
    "@testing-library/jest-dom": "^5.11.6",
    "@testing-library/react": "^11.2.2",
    "@testing-library/user-event": "^12.5.0",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-images-uploader": "^1.2.0-rc1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "4.0.1",
    "react-toastify": "^6.2.0",
    "web-vitals": "^0.2.4"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}
查看chrome开发工具中的“源代码”下,我可以看到这一行:

e.exports.executeGet = r

这实际上是未定义的。我真的不知道问题出在哪里。这是关于用于声明导出函数的语法的吗?当webpack创建构建时,它不起作用?

因为您使用的是
反应脚本
,所以需要使用正确的ES模块导出/导入语法导出内容,而不是CommonJS
模块。导出

const executeGet = async (url, options) => {
    return 'something';
}
export executeGet;

类似地,如果您碰巧正在使用
require()
,则不应该使用;改为使用
import

,但我会收到很多错误,无法提供服务。我是否需要在common.js中指定一些东西?
e.exports.executeGet = r
const executeGet = async (url, options) => {
    return 'something';
}
export executeGet;