18

我正在使用带有反应的 VS 2013 和 tsx 文件。我可以手动构建我的项目就好了。(右键单击并构建解决方案)

但是当我尝试在 Azure 上发布时,VS 会尝试再次构建,但当时我收到了一堆错误,如下所示:

Error   2   Build: Cannot use JSX unless the '--jsx' flag is provided. 

并指向我的 tsx 文件。

似乎 Azure Publish 使用与 VS 2013 不同的构建步骤。

我该如何解决这个问题?

Azure 发布错误

VS 2013 错误

4

7 回答 7

31

我添加"jsx": "react"到我tsconfig.json的以解决此错误:

{
    "compileOnSave": true,
    "compilerOptions": {
        "target": "es6",
        "outFile": "Content/app.js",
        "sourceMap": true,
        "jsx": "react"
    }
}
于 2016-04-22T13:45:49.993 回答
6

将此添加到 csproj 在 VS2015 中为我工作:

<PropertyGroup>
  <TypeScriptJSXEmit>react</TypeScriptJSXEmit>
</PropertyGroup>

来自: 解决“除非提供 '--jsx' 标志,否则不能使用 JSX。” 使用 TypeScript 1.6 测试版

于 2016-02-25T16:47:41.993 回答
5

在您tsconfig.json添加一个带有 react value 的属性 jsx "jsx": "react"。其次,您还应该包含文件以反映像这样的编译器选项 (index.tsx)。

{
    "compilerOptions": {
        "outDir": "./build/",
        "sourceMap": true,
        "noImplicitAny": true,
        "module": "commonjs",
        "target": "es5",
        "jsx": "react"
    },
    "files": [
        "./src/app/index.tsx"
    ]
}
于 2016-11-10T00:49:49.043 回答
1

此处提供的解决方案在 Visual Studio 2017 中对我有用

https://www.koskila.net/fixed-cannot-use-jsx-unless-the-jsx-flag-is-provided/

基本上改变 TS Build 属性。

右键单击项目-> 属性-> TypeScript 构建

在 TSX 文件中的 JSX 编译选项中,选择 React。

于 2019-07-01T20:17:32.133 回答
1

今天,在使用 es2019 + typescript 4.1.3 时,我相信 npm start 命令会导致一条消息说它改变了 tsconfig.json (对我来说)

进入:“jsx”:“react-jsx”,

但是,Visual Studio 2019 不支持该设置,这会导致一个巨大的错误列表。

于 2021-01-26T20:55:52.527 回答
1

如果你碰巧还在为此苦苦挣扎,请检查你的项目设置,确保 TSX 文件中的 JSX 编译设置为 React,并仔细检查你正在查看正确的构建配置(很容易错过,而且我不知道为什么 TS 构建是特定于构建配置的)。在 VS2015 上测试。

编辑:我应该提到我能够从 VS2015 发布到 Azure;我最初遇到了同样的错误,并意识到我的非发布构建配置已更新,但发布配置未更新。我进行了上述更改,然后发布成功。

于 2016-06-16T01:29:40.940 回答
0

tsc --jsx helloWorld.tsx http://staxmanade.com/2015/08/playing-with-typescript-and-jsx/

可能对你有帮助

于 2016-02-22T05:55:26.793 回答