2016-10-15 14 views
0

私はES6インポートステートメントを使用するアプリケーションを持っています。私はibm cloudfoundryに展開しようとします。ログはノード6.8.0で始まることを示します。アプリが文句を言う:IBM BLUEMIXのES6モジュール構文サポート

Unexpected token import 

ノード6.8.0で私のWindows 10デスクトップでアプリを起動しても、完璧に動作します。私が走った:ここ

console.log(process.versions); 

が出力されます。

{ http_parser: '2.7.0', 
    node: '6.8.0', 
    v8: '5.1.281.84', 
    uv: '1.9.1', 
    zlib: '1.2.8', 
    ares: '1.10.1-DEV', 
    icu: '57.1', 
    modules: '48', 
    openssl: '1.0.2j' } 

出力は私のアプリが動作するマシンとそうでないbluemixサーバー上で同じです。ここに私のPackage.json:

{ 
    "name": "bluemixtest", 
    "version": "0.0.0", 
    "main": "server/app.js", 
    "dependencies": { 
    }, 
    "devDependencies": { 
    }, 
    "engines": { 
    "node": "6.8.0" 
    }, 
    "scripts": { 
    "start": "node --harmony_modules server/app.js" 
    }, 
    "private": true 
} 

サーバー/ app.js:ログに

'use strict'; 
import express from 'express'; 
import mongoose from 'mongoose'; 

スタートアップエラー:

/home/vcap/app/server/app.js:7 
import express from 'express'; 
^^^^^^ 
SyntaxError: Unexpected token import 
    at Object.exports.runInThisContext (vm.js:76:16) 
    at Module._compile (module.js:542:28) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.runMain (module.js:604:10) 
    at run (bootstrap_node.js:394:7) 
    at startup (bootstrap_node.js:149:9) 
    at bootstrap_node.js:509:3 
npm ERR! Linux 3.19.0-33-generic 
npm ERR! argv "/home/vcap/app/vendor/node/bin/node" "/home/vcap/app/vendor/node/bin/npm" "start" 
npm ERR! node v6.8.0 
npm ERR! npm v3.10.8 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] start: `node --harmony server/app.js` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] start script 'node --harmony server/app.js'. 
npm ERR! Make sure you have the latest version of node.js and npm installed. 
npm ERR! If you do, this is most likely a problem with the bluemixtest package, 
npm ERR! not with npm itself. 

答えて

2

ES6規格はimport文を定義しますが、そうではありませんノードによってネイティブに(まだ)サポートされています。 "Import" ES6 for Node

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

+0

これが犯人だったかもしれない私は、if文をコメントし、サーバ/ index.jsで私のコードです!//もし(ENV === '開発' || ENV ===「テスト'){ // Babelを登録する必要があります。フック require(' babel-register '); //} –

+0

'// if(env === '開発' || env === 'テスト'){ // Babelに必要なフックを登録する require( 'babel-register'); //} ' –