私はVS2013とtsxファイルをreactで使用しています。プロジェクトを手動で問題なくビルドできます。 (右クリックしてソリューションを構築します)
しかし、Azureで公開しようとすると、VSは再度ビルドしようとしますが、その時点で、次のようなエラーが発生します。
Error 2 Build: Cannot use JSX unless the '--jsx' flag is provided.
そして私のtsxファイルを指しています。
VS2013とは異なる種類のビルド手順を使用するAzurePublishのようです。
この問題を修正するにはどうすればよいですか?
追加した "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
反応値を使用してプロパティjsxを追加します"jsx": "react"
。次に、このようなコンパイラオプションを反映するファイル(index.tsx)も含める必要があります。
{
"compilerOptions": {
"outDir": "./build/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"jsx": "react"
},
"files": [
"./src/app/index.tsx"
]
}
それでも問題が解決しない場合は、プロジェクト設定を確認し、TSXファイルでのJSXコンパイルがReactに設定されていることを確認し、正しいビルド構成を確認していることを再確認します(これを見逃しがちですが、私はTSビルドがビルド構成固有である理由がわかりません)。 VS2015でテスト済み。
[〜#〜] edit [〜#〜]:VS2015からAzureに公開できたことを述べておかなければなりません。私は当初、これと同じエラーに遭遇し、リリース以外のビルド構成が更新されたが、リリース構成は更新されていないことに気付きました。上記の変更を行い、公開して成功しました。
tsc --jsx helloWorld.tsx http://staxmanade.com/2015/08/playing-with-TypeScript-and-jsx/
それはあなたに役立つかもしれません
ここで提供されるソリューションは、Visual Studio2017で機能しました
https://www.koskila.net/fixed-cannot-use-jsx-unless-the-jsx-flag-is-provided/
基本的にTSビルドプロパティを変更します。
プロジェクト->プロパティ-> TypeScriptビルドを右クリックします
TSXファイルでのJSXコンパイルオプションで、Reactを選択します。