2016-06-01 18 views
0

Hier ist der sehr einfache Express Standardcode, die ich geändert nur es6 Import zu verwenden, um den transpiling Prozess zu testen app.js:kann nicht ausgeführt werden babel transpiled Dateien mit Knoten

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!'); 
}); 

in .babelrc

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

Resultierende transpiled Code app-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 

versuchen nun,/usr/local laufen/bin/Knoten app-co mpiled.js:

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

oder/usr/local/bin/Knoten 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 

Auch wenn ich den polyfill nicht ohne die Kapselung der gleiche 'importieren' Fehler ist Funktion.

Wenn das hilft, Abhängigkeiten in 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" 
    } 
} 

In meinem WebStorm ide habe ich babel mit diesen Parametern festgelegt:

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

Argumente: --source-Karten --out-Datei $ FileNameWithoutExtension $ -compiled.js $ FilePath $

Ausgangspfade aktualisieren: $ FileNameWithoutExtension $ -compiled.js: FileNameWithoutExtension $ $ -compiled.js.map

Warum nicht den babel Code transpiled laufen Knoten kann?

Antwort

3

Ihre import ist syntaktisch korrekt, aber falsch für Ihre Nutzung, sollte es einfach sein:

import express from 'express'; 
+0

Danke, und wie soll ich das polyfill importieren, weil sie nicht schreiben es auf eine Variable und Verwendung import „babel zuweisen "Polyfill"; was verursacht einen Fehler? –

+1

'importieren 'babel-polyfill';' ist das gleiche wie 'require ('babel-polyfill');' so sollten Sie es verwenden. –