我正在使用带有反应的 VS 2013 和 tsx 文件。我可以手动构建我的项目就好了。(右键单击并构建解决方案)
但是当我尝试在 Azure 上发布时,VS 会尝试再次构建,但当时我收到了一堆错误,如下所示:
Error 2 Build: Cannot use JSX unless the '--jsx' flag is provided.
并指向我的 tsx 文件。
似乎 Azure Publish 使用与 VS 2013 不同的构建步骤。
我该如何解决这个问题?
我正在使用带有反应的 VS 2013 和 tsx 文件。我可以手动构建我的项目就好了。(右键单击并构建解决方案)
但是当我尝试在 Azure 上发布时,VS 会尝试再次构建,但当时我收到了一堆错误,如下所示:
Error 2 Build: Cannot use JSX unless the '--jsx' flag is provided.
并指向我的 tsx 文件。
似乎 Azure Publish 使用与 VS 2013 不同的构建步骤。
我该如何解决这个问题?
我添加"jsx": "react"
到我tsconfig.json
的以解决此错误:
{
"compileOnSave": true,
"compilerOptions": {
"target": "es6",
"outFile": "Content/app.js",
"sourceMap": true,
"jsx": "react"
}
}
将此添加到 csproj 在 VS2015 中为我工作:
<PropertyGroup>
<TypeScriptJSXEmit>react</TypeScriptJSXEmit>
</PropertyGroup>
在您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"
]
}
此处提供的解决方案在 Visual Studio 2017 中对我有用
https://www.koskila.net/fixed-cannot-use-jsx-unless-the-jsx-flag-is-provided/
基本上改变 TS Build 属性。
右键单击项目-> 属性-> TypeScript 构建
在 TSX 文件中的 JSX 编译选项中,选择 React。
今天,在使用 es2019 + typescript 4.1.3 时,我相信 npm start 命令会导致一条消息说它改变了 tsconfig.json (对我来说)
进入:“jsx”:“react-jsx”,
但是,Visual Studio 2019 不支持该设置,这会导致一个巨大的错误列表。
如果你碰巧还在为此苦苦挣扎,请检查你的项目设置,确保 TSX 文件中的 JSX 编译设置为 React,并仔细检查你正在查看正确的构建配置(很容易错过,而且我不知道为什么 TS 构建是特定于构建配置的)。在 VS2015 上测试。
编辑:我应该提到我能够从 VS2015 发布到 Azure;我最初遇到了同样的错误,并意识到我的非发布构建配置已更新,但发布配置未更新。我进行了上述更改,然后发布成功。
tsc --jsx helloWorld.tsx http://staxmanade.com/2015/08/playing-with-typescript-and-jsx/
可能对你有帮助