2016-06-01 1 views
0

Voici le code express boilerplate très basique que je viens d'utiliser l'importation modifié ES6 afin de tester le processus de transpiling app.js:Impossible d'exécuter babel fichiers transpiled avec nœud

import "babel-polyfill"; 
import * as express from "express" 
var app = express(); 


app.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

app.listen(3000, function() { 
    console.log('Examdple app listening on port 3000!'); 
}); 

dans .babelrc

{ 
    "presets": [ 
    "es2015" 
    ], 
    "plugins": ["transform-runtime", 
     "transform-es2015-classes"] 
    } 

Code transpiled app résultant-compiled.js:

"use strict"; 

require("babel-polyfill"); 

var _express = require("express"); 

var express = _interopRequireWildcard(_express); 

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } 

var app = express(); 

app.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

app.listen(3000, function() { 
    console.log('Examdple app listening on port 3000!'); 
}); 

//# sourceMappingURL=app-compiled.js.map 

maintenant, essayez d'exécuter/usr/local/bin/app-co noeud mpiled.js:

var app = express(); 
     ^
TypeError: express is not a function 

ou/usr/local/bin/noeud app.js

/Users/Documents/Apps_And_Sites/Js_Apps/projectname/app.js:1 
(function (exports, require, module, __filename, __dirname) { import "babel-polyfill"; 
                   ^^^^^^ 

SyntaxError: Unexpected reserved word 

Aussi, quand je ne me le polyfill c'est la même erreur 'import' sans encapsulage fonction.

Si cela aide, les dépendances à package.json:

"devDependencies": { 
    "babel-cli": "^6.9.0", 
    "babel-core": "^6.9.1", 
    "babel-eslint": "^6.0.4", 
    "babel-plugin-syntax-flow": "^6.8.0", 
    "babel-plugin-transform-class-properties": "^6.9.1", 
    "babel-plugin-transform-flow-strip-types": "^6.8.0", 
    "babel-plugin-transform-runtime": "^6.9.0", 
    "babel-polyfill": "^6.9.1", 
    "babel-preset-es2015": "^6.9.0", 
    "eslint-plugin-flowtype": "^2.2.7", 
    "flow-bin": "^0.26.0" 
    }, 
    "dependencies": { 
    "babel-runtime": "^6.9.2", 
    "express": "^4.13.4" 
    } 
} 

Dans mon ide WebStorm, j'ai babel ensemble avec ces paramètres:

Programme: node_modules/babel-cli/bin/babel.js

Arguments: cartes --source---out fichier $ FileNameWithoutExtension $ -compiled.js $ CheminFichier

$

chemins de sortie pour se rafraîchir: FileNameWithoutExtension $ -compiled.js $: FileNameWithoutExtension $ $ -compiled.js.map

Pourquoi ne peut pas exécuter le nœud babel Code transpiled?

Répondre

3

Votre import est syntaxiquement correct mais mal pour votre usage, il devrait juste être:

import express from 'express'; 
+0

Merci, et comment dois-je importer le polyfill parce qu'ils écrivent ne pas l'assigner à une variable et d'importation pour « babel -polyfill "; qui provoque une erreur? –

+1

'import 'babel-polyfill';' est identique à 'require ('babel-polyfill');' c'est comme ça que vous devriez l'utiliser. –