首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual Studio 2015 JSX/JSX 2015语法用babel突出显示

Visual Studio 2015 JSX/JSX 2015语法用babel突出显示
EN

Stack Overflow用户
提问于 2016-03-30 19:30:24
回答 1查看 1.6K关注 0票数 3

我想做的事:

基于this的答案,我想看看我是否可以用预置的reactes2015stage-1react-tools转换器换成babel-core转换器。

VS2015社区使用节点服务器上的react工具动态地传输代码,nodeJs server.js文件位于:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\react-server

transformJsxFromPost函数中的以下行执行转换,并将elementMap返回到visual:

代码语言:javascript
复制
var transformed = reactTools.transformWithDetails(code, { elementMap: true });
result = { elementMappings: transformed.elementMappings };

启动VS时,这将在本地应用程序数据中创建一个临时文件夹,并在以下位置启动节点服务器:

%localappdata%\Temp\{most-recent-generated-guid-folder}

到目前为止:-- visual External\react-tools\文件夹有一个node_modules文件夹,所以我在那里安装了以下内容:

代码语言:javascript
复制
npm install babel-core --save-dev
npm install babel-preset-es2015 --save-dev
npm install babel-preset-react --save-dev
npm install babel-preset-stage-1 --save-dev

将以下内容添加到server.js文件的顶部:

代码语言:javascript
复制
var babel = require('babel-core');

并将上面提到的transformJsxFromPost中的行替换为以下行:

代码语言:javascript
复制
var transformed = babel.transform(code, {sourceMaps: "inline"});
result = { elementMappings: transformed.map };

在这个阶段,重新启动visual并使其工作,我将返回一个sourceMap (诚然,它的格式与react-tools elementMap的格式不同)。

我陷入困境的,当我试图让babel使用预设时,我就会出错。因此,当我将第一行改为:

代码语言:javascript
复制
var transformed = babel.transform(code, {sourceMaps: "inline", presets: ['es2015', 'react', 'stage-1']});

我知道错误:

JSX :无法找到相对于目录\"C:\Users\“的预设\”‘t 2015\“

预设是package.json文件中的全部依赖项,并且它与babel没有任何问题,那么为什么它要在临时目录中查找插件呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-30 22:56:11

在这种情况下,我不得不将实际的预设传递给函数,而不是像webpack那样导入它们并通过字符串传递它们的名称。

我增加了以下进口:

代码语言:javascript
复制
var es2015 = require('babel-preset-es2015');
var react = require('babel-preset-react');
var stage1 = require('babel-preset-stage-1');

并改变了

代码语言:javascript
复制
presets: ['es2015', 'react', 'stage1']

代码语言:javascript
复制
presets: [es2015, react, stage1]

我在一个类似的问题上添加了一个here的答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36317992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档