首页 > 解决方案 > React TypeScript 在 Windows 上构建项目,但不在 Linux 上

问题描述

所以我正在开发一个使用 React TypeScript 的项目。

package.json

{
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    ///...
    "react": "^16.8.6",
    "react-scripts-ts": "3.1.0",
  },
  "scripts": {
    "start": "react-scripts-ts start",
    "build": "react-scripts-ts build",
  },
  "devDependencies": {
     ///...
    "@types/react": "16.8.0",
    "npm": "^6.10.0",
    "typescript": "^3.5.2"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "baseUrl": ".",
    "outDir": "build/dist",
    "module": "esnext",
    "target": "es5",
    "lib": ["es6", "dom", "esnext"],
    "sourceMap": true,
    "allowJs": true,
    "jsx": "react",
    "moduleResolution": "node",
    "rootDir": "src",
    "forceConsistentCasingInFileNames": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noImplicitAny": true,
    "importHelpers": true,
    "strictNullChecks": true,
    "suppressImplicitAnyIndexErrors": true,
    "noUnusedLocals": true,
    "allowSyntheticDefaultImports": true,
    "skipLibCheck": true
  },
  "exclude": [
    "node_modules",
    "build",
    "scripts",
    "acceptance-tests",
    "webpack",
    "jest",
    "src/setupTests.ts"
  ]
}

只需一个npm install; npm start,它就可以在 Windows 上正常构建和编译,并使用 TSC @3.5.2 运行。对于 Linux(Ubuntu),它在 TSC @3.7.5 上运行并且出现语法错误并且无法编译,即使在 TSC @3.5.2 上我得到相同的结果,例如:

(80,67): Property 'email' does not exist on type '{}'.

标签: node.jsreactjstypescript

解决方案


我会尝试两件事:

  1. 首先,删除node_modules两个构建上的文件夹并尝试新npm install的,然后是npm start
  2. 如果这不起作用,还请尝试从/中删除^s ,然后重复 #1。我的理论是,当你.devDependenciesdependencies@typesnpm install

让我知道这些是否有效!


推荐阅读