Change language to JSX in Visual Studio Code
Visual Studio Code现在在0.8版本上支持JSX,但是似乎激活它的唯一方法是使用.jsx文件扩展名。 手动更改语言模式不在列表中,最接近的选项是JavaScriptReact,但不会解析JSX标签。
我在一个带有JSX .js文件很多的项目中,无法更改它。
没有.jsx扩展名,还有其他方法可以使用JSX语法吗?
-
请参阅此处的讨论github.com/Microsoft/vscode/issues/140
如下更改用户设置或工作区设置:
1 2 3 4 5 6
| // Place your settings in this file to overwrite the default settings
{
"files.associations": {
"*.js":"javascriptreact"
}
} |
注意:您可能需要重新启动VSCode。
-
正常运行,甚至不必重启!谢谢
-
即使在运行时也有帮助!非常感谢!
-
什么文件,在哪里?
-
Ctrl + ,->用户或工作区设置
-
这将每个js文件都转换为反应文件,甚至是非反应js文件(如节点模块)。也许不是最好的方法...
-
@PaulinTrognon如果您不希望将所有js文件转换为react文件,则可以更改正则表达式。例如,您可以更改所有以.react.js结尾的文件以作出反应。为此,将*.js更改为*.react.js。
我可以做到,但是JavaScriptReact模式也会显示" not React JS files"。
打开文件C:\ Program Files(x86)\ Microsoft VS Code \ resources \ app \ plugins \ vs.language.javascript \ syntaxes \ javascriptreact.json
(可能需要以管理员权限打开。)
将数组" fileTypes"中的" jsx"更改为" js"。
重新启动应用程序,关闭打开的js文件,然后重新打开。
-
对于任何其他想知道的人,在Mac上,路径是:/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/javascript/syntax es / JavaScriptReact.t mLanguage
-
它为我工作。在Mac上,还将" js"也添加到此文件中的数组列表中:/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/javascript/syntax es / JavaScriptReact.tmLanguage \t\tjsx \t\tjs \t
-
对于Windows10上的0.10.1版本,更改了要编辑的文件。 C:\\Program Files (x86)\\Microsoft VS Code\
esources\\app\\extensions\\javascript\\package.json。并将".js"添加到contributes.languages[0].extensions。
-
@KoheiSugimura,您的解决方案有效,但我还必须从contributes.languages [1] .extensions中删除.js,然后它才有效!
花了我一段时间才弄清楚,但是–JSX已经是Emmet的一部分– Emmet是VS Code的一部分。我已经告诉Emmet也(另外)使JSX代码段在常规JS文件中可用。
只需将其放入您的设置文件即可:
1 2 3
| "emmet.syntaxProfiles": {
"javascript":"jsx"
} |
我认为以下是格式化代码的最简单方法
在VS Code Editor的右下角单击,其中显示Javascript。
您将看到选择语言模式的选项,在这里您可以搜索JavaScriptReact并选择。而已。这应该可以解决您的问题。
1.
-
这个问题来自曾经不存在该选项的时间。现在,它就像您说的那样简单。
-
为什么我在vs编辑器的底部看不到这个?我已经安装了vs community的最新更新和最新版本的react。并更新了所有扩展名。相反,我看到一行显示一个编译错误,并通过左/右箭头查看错误,并以蓝色显示添加到源代码控制github行。
-
效果很好,谢谢
尽管Dionys的答案有效,但在Visual Studio Code的最新版本中有更好的方法来执行此操作。
转到File>Prefrences>Settings,然后向下滚动并找到" Emmet",打开选项卡,您应该看到以下文本
1 2 3 4
| // Enable Emmet abbreviations in languages that are not supported by default. Add a
mapping here between the language and emmet supported language.
// E.g.: {"vue-html":"html","javascript":"javascriptreact"}
"emmet.includeLanguages": {}, |
因此,只需按照说明进行操作,并在右侧面板的json上添加"emmet.includeLanguages": {"javascript":"javascriptreact" }(这将覆盖用户设置)。
现在有一个VS Code扩展名,它允许将.js文件视为.jsx文件。
不幸的是,扩展的自述文件也警告:
when you install this extension you will loose all the existing language support provided for .js files
幸运的是,VS Code现在非常接近采用Salsa,这意味着js-is-jsx问题很快就会得到解决。
一按F1键(在Visual Studio Code中)
2在出现的文本字段中输入"扩展名"
3选择"扩展:安装扩展"
3-类型" ext install jsx"
4-安装JS JSX片段
5-重新启动Visual Studio代码
只需安装扩展程序:
-
按F1键(在Visual Studio Code中)
-
在出现的文本字段中输入"扩展名"
-
选择"扩展:安装扩展"
-
输入" ext install jsx"
-
重新启动Visual Studio代码
资源:
https://code.visualstudio.com/docs/editor/extension-gallery?pub=TwentyChung&ext=jsx
https://marketplace.visualstudio.com/items/TwentyChung.jsx
-
这对* .js文件有效吗?我尝试安装此程序,它似乎对xml样式错误不起作用。
-
此扩展名似乎是TextMate JSX.tmLanguage文件的包装。正如发布问题的人已经指出的那样,VSCode已经支持突出显示JSX,他们只需要在JS文件而不是仅在JSX上进行突出显示。因此,安装此扩展程序可能没有帮助。
-
是的,据我所知,此扩展实际上并没有执行任何操作。我也想不通如何联系做这件事的人。我很喜欢在我的React开发人员中使用vsCode(相比IMO,Webstorm很糟糕)……其他人有什么好主意吗?
尝试在Mac或Linux上使用链接。
1
| ln -s index.ios.js index.ios.jsx |