Я хотел использовать столпотворение для преобразования вывода ES6 из машинописи и используется следующий синтаксис:Использование столпотворение превратить машинопись ES6 в глотке
var gulpBabel = require('gulp-babel');
var ts = require('gulp-typescript');
// ...
function compileTypescript(fileSpec, folder) {
var options = {jsx: 'react', moduleResolution: 'node', target: 'ES6'}
return gulp
.src(fileSpec)
.pipe(sourcemaps.init())
.pipe(ts(options))
.pipe(gulpBabel({presets: ['react', 'es2015', 'stage-0']}))
.pipe(sourcemaps.write("."))
.pipe(gulp.dest(folder));
}
Это создает, казалось бы, правильный код, но что-то плохое происходит с импортом импорт, это т.с.-файл:
import * as express from 'express'
... становится:
var _express = require('express');
var express = _interopRequireWildcard(_express);
... который не работает при запуске в node.js. («Экспресс-это не функция») Когда я компилировать ES5 непосредственно в машинописи компилятора я получаю этот рабочий вывод:
var express = require('express');
Что я здесь делаю неправильно?
Примечание: Я хочу вывести ES6, так как некоторые библиотеки «типизации», express-handlebars в этом случае, предположим ES6. Я могу заставить это работать с использованием ES5 ts-output, но затем файл типизирования должен быть отредактирован вручную, чтобы включить символы es6-prom, которые не будут хорошо работать в моем конвейере сборки. Есть ли другие способы решения этой проблемы?
Примечание: Я использую ту же настройку Babel с моими обычными файлами javascript ES6, и это хорошо работает.
Спасибо, но моя проблема была на самом деле временем выполнения - компиляция продолжалась нормально. (Я также получил сообщение об ошибке с предложенным аргументом при передаче его в tsify.) Однако ваша ссылка на документацию привела med к ответу. –