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