Kos*_*ika 46 javascript node.js express ecmascript-6 babeljs
我在客户端用Babel编译器在ES6中编写了同构应用程序.我希望我的快速服务器具有与客户端代码相同的ES6语法.
不幸的是require('babel/register')
不起作用..
require('babel/register'); // doesn't work
// require('babel-core/register); doesn't work..
const env = process.env.NODE_ENV || 'development';
const port = process.env.NODE_PORT || 1995;
const http = require('http');
const express = require('express');
const address = require('network-address');
let app = express();
app.set('port', port);
app.use(express.static(path.join(__dirname, 'public')));
app.get('*', (req, res) => {
res.send('Hello!');
});
http.createServer(app).listen(app.get('port'), function () {
console.info('Demo app is listening on "%s:%s" env="%s"', address(), app.get('port'), env);
});
Run Code Online (Sandbox Code Playgroud)
ahm*_*mdy 48
由于Babel 6
使用babel-register hook
使上即时transpilation.
第一:
npm install babel-register
Run Code Online (Sandbox Code Playgroud)
然后要求:
require('babel-register');
// not using
// require('babel/register');
// or
// require('babel-core/register);
Run Code Online (Sandbox Code Playgroud)
要将Ecmascript 6
代码转换为ecmascript 5
,必须Babel presets
使用require 设置选项babel-register
如下:
require('babel-register')({
presets: [ 'es2015' ]
});
Run Code Online (Sandbox Code Playgroud)
与@ alexander-pustovalov的答案不同,您不需要.babelrc
提交.
你还必须安装babel-preset-es2015
:
npm install babel-preset-es2015
Run Code Online (Sandbox Code Playgroud)
最后你的Server.js文件将是:
require('babel-register')({
presets: [ 'es2015' ]
});
const env = process.env.NODE_ENV || 'development';
const port = process.env.NODE_PORT || 1995;
const http = require('http');
const express = require('express');
const address = require('network-address');
let app = express();
app.set('port', port);
app.use(express.static(path.join(__dirname, 'public')));
app.get('*', (req, res) => {
res.send('Hello!');
});
http.createServer(app).listen(app.get('port'), function () {
console.info('Demo app is listening on "%s:%s" env="%s"', address(), app.get('port'), env);
});
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,尝试在服务器上呈现反应页面(.jsx).我通过将下面的代码段放在我的服务器文件的顶部来修复它
require('babel-register')({
presets: ['es2015', 'react']
});
Run Code Online (Sandbox Code Playgroud)
确保你有npm babel-preset-es2015
并babel-preset-react
安装
根据这份文件 你必须使用:
require("babel-register");
Run Code Online (Sandbox Code Playgroud)
此外,您必须将.babelrc文件放在启动服务器的目录的根目录中.
{
"presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)
在2019年的前夕,我们仍然没有与JS相关的库中的优秀文档,但是另一方面,我们为此提供了StackOverflow。
为了babel
在Node.js 上使用,您需要
npm install @babel/register @babel/core @babel/preset-env
pre-index.js
带有附件内容的文件node pre-index
您可以使用import
只在S和其他功能index.js
和文件是import
S或require
秒。
require('@babel/register')({
presets: [
[
"@babel/preset-env",
{
targets: {
node: "current"
}
}
]
]
});
require('./index.js');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43849 次 |
最近记录: |