纱线启动React应用后tsconfig.json被重置

时间:2018-11-22 22:14:21

标签: typescript

我使用create-react-app app_name --typescript创建了我的React应用。由于Typescript不支持NODE_PATH。我正在尝试在tsconfig.json中使用baseUrl。

但是,在将yarn start放入"baseUrl": "src"后,每次运行"compilerOptions"时,baseUrl都消失了。我觉得yarn start重设了tsconfig.json

如何停止它以重置文件?

**tsconfig.json**
{
  "compilerOptions": {
    "target": "es6",
    "allowJs": true,
    "skipLibCheck": false,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve"
  },
  "include": ["src"]
}

3 个答案:

答案 0 :(得分:2)

create-react-app当前删除了baseUrl属性,不幸的是,我认为它们当前不支持路径:(

在这里https://github.com/facebook/create-react-app/issues/5585

了解更多

答案 1 :(得分:0)

baseUrl 问题已在create-react-app 3 中修复。现在,它支持两个值-class App extends Component { constructor(props) { super(props); this.state = { notes: [] }; } handleClick = () => { const currentNotes = this.state.notes; // you can have an array here that you keep the props // to pass into Note component currentNotes.push({ noteProp1: "something" }); this.setState({ notes: currentNotes }); }; render() { return ( <div className="App"> <h2>ReactJS Notes App</h2> <button className="fas fa-plus-circle" onClick={this.handleClick}> <i>Button</i> </button> {this.state.notes.map((noteProps, key) => ( <Note key={key} info={noteProps} /> ))} </div> ); } } (默认值)和node_modules(请参阅此comment

使用CHANGELOG中的说明升级create-react-app。

例如:如果要从2.1.x升级到3.0.0,

src

npm install --save --save-exact react-scripts@3.0.0

注意:我曾经同时拥有yarn add --exact react-scripts@3.0.0 jsconfig.json,但是一开始就抛出了错误。删除tsconfig.json解决了该问题。

答案 2 :(得分:0)

有一种解决方法。

  1. 创建一个新文件,说“ base-tsconfig.json”,然后将baseUrl配置和路径放在其中。这些不会被CRA覆盖。
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    }
  }
}
  1. 使用您的自定义配置扩展tsconfig.json主文件
{
  "extends": "./base-tsconfig.json"
}

更多信息here