Node.jsバックエンドサーバーを実行しようとしています。 Node.jsファイルのインポート時にエラーunexpected reserved Word
を受け取りました。
ファイルcore.module.js
の行は次のとおりです。
'use strict';
import lodashMixins from './lodashMixins.js'
... other imports and configurations ...
簡単なコマンドを起動します:node core.module.js
珍しいエラーではありませんが、通常は他のライブラリで発生します。 Node.jsの解決策を見ていません。どうすれば修正できますか? Windows Serverを使用しています。
編集: ES6であることがわかりましたが、どのように起動できますか?アプリケーションのバックエンドのように見えますが、エラーなしで起動するためにどのコマンドを使用する必要があるのかわかりません。
import
キーワードは、 ECMAScript 2015のモジュール機能 の一部であり、export
およびその他のいくつかの仕様も含まれています。
現在、NodeJSでは、最新バージョン(v0.12.7)でさえネイティブに実装されておらず、ES2015の「より使いやすい」フォークiojsでもサポートされていません。
トランスパイラーを使用して動作させる必要があります。
[編集] --harmony_modules
フラグが存在するにもかかわらず、最新バージョン(v5.8)ではまだサポートされていません。これは 何もしない です。 here および here で説明したように、最良の実行はbabelを使用することです
import
はECMAScript 2015 (ES6) standard
の一部であり、上記のAmit
のように、現在Nodejsでネイティブに実装されていません。
babel
のようなトランスパイラーを使用してes6
スクリプトを実行できます
npm install babel
これに基づく例 answer
app.js
import {helloworld,printName} from './es6'
helloworld();
printName("John");
es6.js
module.exports = {
helloworld: function() { console.log('hello world!'); },
printName: function(name) { console.log(name); }
}
そして、start.jsでrequire hook
を使用して
require("babel/register");
var app = require("./app.js");
アプリを次のように起動します
node start.js
EDIT上記の答えはbabel v5.8.23
に基づいていました。 babel >= v6
の場合
start.jsでrequire hook
を使用
require('babel-core/register');
require("./app.js");
また、変換はデフォルトでは有効になっていません。したがって、preset
をインストールする必要があります。この場合、 es2015 を使用します
npm install babel-preset-es2015
そして、ルートフォルダの.babelrc
ファイルで使用します
{
"presets": ["es2015"]
}
Visual Studioの外部にこれらのツールを手動でインストールすると、この問題に遭遇しました。ただし、Visual Studioには、最新のWeb開発ワークフローで使用される複数のオープンソースコマンドラインツールが付属しています。手動でインストールしたものと同じバージョンを使用するようにVisual Studioに指示する方法は次のとおりです。
[ツール]-> [オプション]-> [プロジェクトとソリューション]-> [外部Webツール]に移動します。
または