Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 将Typescript React应用程序部署到Heroku时出现神秘错误_Reactjs_Typescript_Heroku - Fatal编程技术网

Reactjs 将Typescript React应用程序部署到Heroku时出现神秘错误

Reactjs 将Typescript React应用程序部署到Heroku时出现神秘错误,reactjs,typescript,heroku,Reactjs,Typescript,Heroku,我有一个用create react app生成的typescript react app。我以前从未使用过Heroku,当我试图通过执行git push Heroku master部署时,安装和构建过程将启动,但最终总是失败,并显示以下错误消息: remote: Creating an optimized production build... remote: Failed to compile. remote: remote: ./sr

我有一个用
create react app
生成的typescript react app。我以前从未使用过Heroku,当我试图通过执行
git push Heroku master
部署时,安装和构建过程将启动,但最终总是失败,并显示以下错误消息:

remote:        Creating an optimized production build...
remote:        Failed to compile.
remote:        
remote:        ./src/hooks.ts
remote:        Syntax error: Cannot read property 'map' of undefined (0:undefined)
虽然
src/hooks.ts
是我的repo中的一个文件,但它实际上没有任何
map
,这让我认为错误可能来自其他地方。另外,
(0:undefined)
暗示了第0行,即未定义的列,这使得它更加神秘

这些是我的
包的一部分。json

    "name": "lydian",
    "version": "0.1.0",
    "private": true,
    "engines": {
        "node": "10.x"
    },
    "scripts": {
        "start": "react-scripts start",
        "build": "CI=false react-scripts build",
        "postinstall": "tsc && mv -i -v public dist/ && rm -v -rf src",
        "test": "react-scripts test --passWithNoTests",
        "eject": "react-scripts eject",
        "deploy": "git add . && git commit -m Heroku && git push heroku master"
    },

我尝试了以下教程和其他资源,但是Heroku关于部署typescript react应用程序的文档非常稀少。

虽然我不能确切地告诉您为什么会发生这种情况,但我可以告诉您我们是如何“规避”这个问题的

我们遇到了完全相同的错误,并找到了导致该错误的方法签名。(TSC对此没有问题,只是反应脚本)

是否有效:

function timeOnChange(newDate: Date | null) {
  // ...
}
编辑:

仅此一项就足以破坏react脚本:

function breaks(param: [any, any]) { 
  // ...
}

虽然我不能确切地告诉你为什么会发生这种情况,但我可以告诉你我们是如何“规避”这个问题的

我们遇到了完全相同的错误,并找到了导致该错误的方法签名。(TSC对此没有问题,只是反应脚本)

是否有效:

function timeOnChange(newDate: Date | null) {
  // ...
}
编辑:

仅此一项就足以破坏react脚本:

function breaks(param: [any, any]) { 
  // ...
}

你试过在当地建造吗?我认为这里的问题是heroku给了你一个神秘的信息。我有,它成功地构建了。这使得调试变得更加困难。我不知道Heroku,但如果你能找到一些关于它到底做什么的信息,可能会有所帮助。另外,您可以做的一件事是删除一小部分源代码,直到您在构建中隔离出破坏heroku的内容(与
git bisect
btw的原理相同)。我认为错误不来自我的源代码,因为在本地构建时它将失败。我认为错误来自Heroku环境或其他我缺少的预部署步骤。我建议您不要使用最少的源代码制作react starter应用程序,然后查看它是否在Heroku上中断。我想你还不明白这个意图。目的是找出源代码中破坏heroku构建的内容。这样你才能更好地理解,希罗库那边出了什么问题。如果您认为它与源代码无关,那么只需发送一个空的nodejshelloworld应用程序,看看heroku是否中断。您是否尝试在本地构建它?我认为这里的问题是heroku给了你一个神秘的信息。我有,它成功地构建了。这使得调试变得更加困难。我不知道Heroku,但如果你能找到一些关于它到底做什么的信息,可能会有所帮助。另外,您可以做的一件事是删除一小部分源代码,直到您在构建中隔离出破坏heroku的内容(与
git bisect
btw的原理相同)。我认为错误不来自我的源代码,因为在本地构建时它将失败。我认为错误来自Heroku环境或其他我缺少的预部署步骤。我建议您不要使用最少的源代码制作react starter应用程序,然后查看它是否在Heroku上中断。我想你还不明白这个意图。目的是找出源代码中破坏heroku构建的内容。这样你才能更好地理解,希罗库那边出了什么问题。如果你认为这与你的源代码无关,那么只需发送一个空的nodejshelloworld应用程序,看看heroku是否中断。是的,似乎react脚本(或下面的任何东西)在元组类型上有一个普遍的问题,从TypeScript 4开始。除了删除那些元组类型或降级之外,似乎没有真正的解决方案。可能这是相关的:是的,似乎react脚本(或下面的任何东西)在元组类型上有一个普遍的问题,从TypeScript 4开始。除了删除这些元组类型或降级外,似乎没有真正的解决方案。这可能与: