当前位置: 首页 > 面试题库 >

在生产中使用babel-node可以吗

南宫俊逸
2023-03-14
问题内容

我一直在使用babel-node和带有babelify转换的browserify开发站点,以支持ES6语法。

我只是想知道,我是否可以在生产环境中运行它, babel-node server 而不是 node server
在节点中运行ES6还需要其他哪些选项?

这是我正在运行的用于构建和开始开发的命令

// npm run build
browserify -t [babelify] client.js > public/js/bundle.js",

// npm start
babel-node server.js"

这是我的开发依赖

"babel": "^4.0.1",
"babelify": "^5.0.3",
"browserify": "^8.0.3"

问题答案:

对于客户端代码 ,您正在做正确的事情。babelify并将其运送给客户。

对于服务器端代码 ,我将使用babel-
cli
进行常规构建

据http://babeljs.io/docs/setup/#babel_register,babel- register不能用于生产环境 -钩推荐用于简单的情况下的需要。

适用于Babel 6+

从Babel 6开始,默认情况下不包含任何转换。因此,让我们从安装babel-cli和开始babel-preset-es2015

$ npm install --save-dev babel-cli babel-preset-es2015

向您的.babelrc文件添加转换-
这是我们上面下载的perst模块。查看预设的完整列表,以查看最适合您的预设。

{
  "presets": ["es2015"]
}

build脚本添加到中package.json。以下src是您的输入文件,build是转换后的输出文件

"scripts": {
  "build": "babel src -d build"
}

然后建立它!

$ npm run build

然后运行您的代码。此时,您将要执行目录中的build文件

$ npm start

对于Babel <= 5,只需使用require钩子即可。

require("babel/register");

扩展名 .es6.es.jsx.js
的节点所需的所有后续文件都将由Babel转换。该填充工具也需要自动。

您将能够将源文件保留在ES6中,但仍然可以使用 node server.js

根据您的评论,您似乎遇到了一些麻烦。请特别注意上面黄色突出显示的部分。您的第一个文件只能是ES5,它由节点本身运行。 随后的 所有 需求
将由Babel进行转换…

这是典型设置的样子

server.js

// only ES5 is allowed in this file
require("babel/register");

// other babel configuration, if necessary

// load your app
var app = require("./app.js");

app.js

// this file will be loaded through babel
// you can now use ES6 here and in every other include

燃烧起来;动起来!

$ node server.js


 类似资料:
  • 问题内容: 我正在尝试为Node v6.9.2配置Babel。我想使用/ 构造。 因为我是Babel和所有Node基础架构的新手,所以我对如何正确配置它感到困惑: 我应该使用什么预设?ES6的大多数功能已经实现了Node。因此,出于性能原因,我不希望Babel移植Node 6.9.x已经支持的功能(箭头功能,新的导入机制等)。 我应该包括哪些插件,以便可以使用异步/等待?我也感到困惑,因为经过一番

  • 在这个博客里,他们说。net标准2.0它有一个一致性状态。 在官方网站上,没有说如果。net standard 2.0是预览版或最终版。 但我想,.net标准2.0是最终版本,因为EF Core 2.0最终版已经过时,这使用了.net标准2.0.也许EF Cor可以是最终版,而.net标准1.0仍然是预览版,但我想这会很奇怪。 另外,我知道要使用.net标准,我必须使用VS2017 15.3,这是

  • 我有4个文本文件是通过FXML创建的。两个用于字符串模型类型。一个表示整数。一个给BigDecimal。问题发生在所有这些字段上(有时是一个字段,有时是几个字段)。因为我的数字字段可以有空值,所以我使用例如PropertyObject而不是IntegerProperty(来自openjfx的人建议这样做)。 那么这个是JavaFx bug还是什么?附言。我用felix osgi、weld cdi和

  • 问题内容: 我有一个想要在点击时更改的图像元素。 这有效: 但是我需要的是: 但是,这显然不起作用。CSS 根本有可能有行为(即不使用JavaScript)吗? 问题答案: 最接近的是: 但是,这仅在按住鼠标按钮时才适用。应用样式 并使之保持 onclick 的唯一方法是使用一些JavaScript。

  • 以下问题:避免!=空语句我问我们的一位高级开发人员为什么不使用断言。虽然他的回答被证明是合理的(我们使用自定义异常),但他也声称断言是在开发和测试时使用的,而不是在生产中使用的。 但在甲骨文的文档中http://docs.oracle.com/javase/6/docs/technotes/guides/language/assert.html看起来断言的使用超出了测试范围,甚至考虑到禁用它们的可

  • 问题内容: 今天,我第一次在“生产”模式下运行Node.js应用程序,并收到以下警告: 我只需要运行一个进程,但是应该使用什么呢?我希望我的会话驻留在RAM中以便快速访问。我还希望能够通过仅关闭Node应用程序来丢弃所有会话。 仅安装Redis,MongoDB或其他数据库来完成此简单任务似乎是过大的选择。我也不明白为什么不应该真正使用Node中包含MemoryStore? 问题答案: Memory