在js文件中,我使用import而不是require
import co from 'co';
Run Code Online (Sandbox Code Playgroud)
并尝试直接由nodejs运行它,因为它说导入是'运输功能'并支持没有任何运行时标志(https://nodejs.org/en/docs/es6/),但我收到一个错误
import co from 'co';
^^^^^^
SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)
然后我试着用巴贝尔
npm install -g babel-core
npm install -g babel-cli
npm install babel-core //install to babel locally, is it necessary?
Run Code Online (Sandbox Code Playgroud)
并运行
babel-node js.js
Run Code Online (Sandbox Code Playgroud)
仍有同样的错误,意外的令牌导入?
我怎么能摆脱它?
我在客户端用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) 我已多次阅读以下文档: Node API Babel 6 Docs
我开始学习pg-promise遵循Learn by Example教程,并且更愿意使用ES6并使用Babel转换到ES5,但我不确定一些事情:
文档对我来说不清楚我放了哪个文件: require("babel-core").transform("code",options); 进入该代码的哪些部分是占位符.当我使用该代码时,我只是在某处使用它然后我可以在每个其他文件中使用ES6吗?这将如何实现?
我读了这个.babelrc文件,想确认实际的文件名是否是".babelrc",或者如果那只是文件扩展名和我项目的根目录相关的地方我放了那个文件..怎么办我链接到它?
如果我正在使用pg-promise我应该使用ES6和Babel还是会运行:npm install如pg-promise 的测试部分所描述的那样足够并试图使用ES6来创建更多问题?
如果在我的服务器端开发期间需要,我希望利用let和const.
编辑 值得注意的是我还使用Babel-Node读取了Node JS,并且发现应该避免使用它.最底层的最终答案对我来说并没有多大意义,因为我在跟踪Babel提供的实际文档时遇到了麻烦.
我有一个使用 webpack 设置的 React 应用程序,并且还希望有一个在节点中运行的脚本以将内容写入输出文件,例如:
脚本.mjs
import fs from 'fs';
import {SomeClass} from './index.js';
const outputFile= fs.createWriteStream(__dirname + '/output.png');
// Writes into output file
Run Code Online (Sandbox Code Playgroud)
并在其中包含以下脚本命令package.json
:
"scripts": {
...
"runFile": "node --experimental-modules test/script.mjs",
...
}
Run Code Online (Sandbox Code Playgroud)
每当我运行它时npm run runFile
,它都会抱怨:
import {SomeClass} from './index.js';
^^^^^^^^^
SyntaxError: The requested module './index.js' does not provide an export named 'SomeClass'
Run Code Online (Sandbox Code Playgroud)
即使它存在于该文件中:
./index.js
export SomeClass from './SomeClass';
我什至曾经node -r esm test/script.js
在node中运行,但它一直抱怨ES6 exports
。有人能告诉我如何使用node
命令运行包含 ES6 内容的 js 文件吗?
节点 v10
babeljs ×4
node.js ×4
ecmascript-6 ×3
javascript ×3
express ×1
package.json ×1
pg-promise ×1
postgresql ×1