heroku 语法错误:无法在模块外部使用import语句

tyky79it  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(201)

我试着把我的web应用程序部署到heroku中,自从我添加了“emailjs”模块后,我就一直遇到这个问题。在那之前,我的部署工作得很好,现在我每次都遇到同样的问题。不管我怎么尝试。Heroku logs results after trying to deploy

这是我在index.js中代码:

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

reportWebVitals();

`
问题是:当我将“import”更改为“require”时,代码会向我抛出越来越多的错误。

**这是我包。
**

{
  "name": "chipsi-puntos",
  "version": "0.1.0",
  "private": true,
  "engines": {
    "node": "18.12.1"
  },
  "dependencies": {
    "@emailjs/browser": "^3.10.0",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-router-dom": "^6.4.3",
    "react-scripts": "5.0.1",
    "sass": "^1.56.1",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "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"
    ]
  }
}

如果你有任何建议,我会非常感谢〈3
我已经尝试了这里所写的所有解决方案:"Uncaught SyntaxError: Cannot use import statement outside a module" when importing ECMAScript 6
我还试图将“导入”切换为“要求”,但没有成功。
我希望我的代码能在heroku上运行良好。
Pd:它在我的本地主机上100%正常工作。

c2e8gylq

c2e8gylq1#

我认为当你使用import语句时,你应该有“type”:“module”。由于您没有它,您应该使用require语句来代替。如果我是您,我会尝试将"type": "module"添加到package.json中。您也可以尝试调用标志:--experimental-modules
更多信息请点击此处

erhoui1w

erhoui1w2#

您需要在package.json文件中添加"type": "module"

{
  "name": "Name of your app",
  "version": "0.1.0",
  "homepage": ".",
  "private": true,
  "type": "module",
  ...
}

更改您的index.js文件:

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById("root")
);

相关问题