web-dev-qa-db-ja.com

Nodeエラー:SyntaxError:予期しないトークンのインポート

何が間違っているのか分かりません。トランスピレーションとバベルについて話している他のフォーラムをチェックしました。私は何をしなければなりませんか?

node -v
v5.5.0

私のコード:

import recast from 'recastai'

そしてエラー

(function (exports, require, module, __filename, __dirname) { import recast from 'module1'
                                                              ^^^^^^

SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:139:18)
    at node.js:999:3
54
Stefdelec

ES6インポートは最近導入された機能であり、Nodeの現在の安定バージョンではまだサポートされていません。 Node.js課題トラッカーには 未解決の問題 があります-ただし、V8およびNodeがこの機能のサポートを追加するまでは、トランスパイラーを使用する必要があります(最も一般的なものは- babel )インポートを使用できるようにします。

トランスピレーションをすばやく試すために、babelはWebベースのREPLを提供しています。 この1つ は、コードが変換されることを示しています。

babel project homepage は、Babelの使用を開始し、開発ワークフローと統合するための関連リソースを示しています。

最も簡単なセットアップについては、この セットアップページ にアクセスし、Babel組み込みセクションでCLIを選択してください。

これには基本的に3つの簡単な手順が含まれます。

  1. Babel-cliのインストール:npm install --save-dev babel-cli babel-preset-es2015
  2. .babelrc構成ファイルを作成します:echo '{ "presets": ["es2015"] }' > .babelrc
  3. インストールされたモジュールを使用して、ソースコードを変換します:./node_modules/.bin/babel src -d lib

前述のセットアップページでは、npmスクリプトを追加して最後の手順を簡素化する方法も示しています。あるいは、変更時にファイルが自動的にコンパイルされるように、babelをエディターまたはビルドチェーンに統合することができます。

41
lorefnon

バベルに対処したくない場合に。これは私のために働いた。

const calc = require('./my_calc');
let {add, multiply} = calc;
8
mahe madhi

1)最新のプリセットをインストールする

yarn add --dev babel-preset-latest

2).babelrcを作成し、以下を追加します

{
    "presets": ["latest"]
}

3)スクリプトを実行する

npx babel-node yourscript.js

または、package.jsonファイルに追加します

"scripts": {
  "start": "babel-node index.js"
}
5
Jerome Anthony

この問題を解決するのは非常に簡単です。importはES6構文であり、Nodeはサポートが困難です。トランスパイラーとしてBabelを追加し、パッケージに移動する必要があります。 jsonと以下を追加

最初に、トランスコード用のJSコードを実行しながらbabelを使用するスクリプトタグを追加します。

"scripts": {
    "start": "nodemon ./app.js --exec babel-node -e js"
  }

そして、以下をBabel devDependenciesとして追加します

"devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1"
  }

この後、babelプリセットファイルも構成する必要があります。したがって、ルートディレクトリに。babelrcファイルを作成し、次のようにプリセットを定義します。

{
  "presets": [
    "es2015",
    "stage-0"
  ]
}

最後にnpm installを行うことを忘れないでください

1
Naved Ahmad

入門

最初にbabel-cliをインストールします。

$ npm install --save-dev babel-cli

いくつかのプリセットとともに。

$ npm install --save-dev babel-preset-es2015 babel-preset-stage-2

package.json:

  "scripts": {
    "start": "babel-node index.js --presets es2015,stage-2"
  }

実行:

$ npm start

nodemonでファイルの変更を監視する:

Nodemonを使用してnpm起動スクリプトを改善できます。

$ npm install --save-dev nodemon

その後、npm startスクリプトを更新できます。

package.json:

 "scripts": {
   "start": "nodemon index.js --exec babel-node --presets es2015,stage-2"
  }

実行:

$ npm start 

pm2を使用している場合、次の手順に従います。

$ pm2 start app.js --interpreter babel-node
1
KARTHIKEYAN.A

NodeJSの機能強化提案 のおかげで、先に進む道があります。使用できます @standard-things/esm

ここで お知らせを見つけます 単に実行します

npm i --save @std/esm

あなたのパッケージに今日。

0
Evan Carroll