web-dev-qa-db-ja.com

ビルド:「-jsx」フラグが指定されていない限り、JSXを使用できません

私はVS2013とtsxファイルをreactで使用しています。プロジェクトを手動で問題なくビルドできます。 (右クリックしてソリューションを構築します)

しかし、Azureで公開しようとすると、VSは再度ビルドしようとしますが、その時点で、次のようなエラーが発生します。

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

そして私のtsxファイルを指しています。

VS2013とは異なる種類のビルド手順を使用するAzurePublishのようです。

この問題を修正するにはどうすればよいですか?

Azure publish error

VS 2013 errors

13
Teoman shipahi

追加した "jsx": "react" わたしの tsconfig.jsonこのエラーを解決するには:

{
    "compileOnSave": true,
    "compilerOptions": {
        "target": "es6",
        "outFile": "Content/app.js",
        "sourceMap": true,
        "jsx": "react"
    }
}
16

これをcsprojに追加すると、VS2015でうまくいきました。

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

ソース

5
theycallmemorty

あなたの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"
    ]
}
4
Juni Brosas

それでも問題が解決しない場合は、プロジェクト設定を確認し、TSXファイルでのJSXコンパイルがReactに設定されていることを確認し、正しいビルド構成を確認していることを再確認します(これを見逃しがちですが、私はTSビルドがビルド構成固有である理由がわかりません)。 VS2015でテスト済み。

[〜#〜] edit [〜#〜]:VS2015からAzureに公開できたことを述べておかなければなりません。私は当初、これと同じエラーに遭遇し、リリース以外のビルド構成が更新されたが、リリース構成は更新されていないことに気付きました。上記の変更を行い、公開して成功しました。

1
Joe

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

それはあなたに役立つかもしれません

0
danny

ここで提供されるソリューションは、Visual Studio2017で機能しました

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

基本的にTSビルドプロパティを変更します。

プロジェクト->プロパティ-> TypeScriptビルドを右クリックします

TSXファイルでのJSXコンパイルオプションで、Reactを選択します。

0
getThingsDone