我正在尝试使用gulp typescript编译器运行angular 2示例。 gulp-script编译
import {Component, View, bootstrap} from 'angular2/angular2';
到
var angular2_1 = require("angular2/angular2")
不在浏览器中运行。这有什么问题?据我所知,这种实施需要'仅用于nodeJS。为什么TypeScript编译器仍然像那样编译它?
任何想法?
亲切的问候
答案 0 :(得分:2)
那是因为你通过将commonjs传递给--module标志或只是-m来编译要由节点提供的打字稿文件。
你也可以传入amd:
> tsc.cmd -m amd -t es5 --emitDecoratorMetadata app.ts
将产生以下js:
define(["require", "exports", "angular2/angular2"], function (require, exports, angular2_1)
否则,如果您只是希望它在示例中工作,请安装http-server模块并提供页面。
> npm install -g http-server
> http-server
访问
localhost:8080/index.html
答案 1 :(得分:0)
我无法使其工作,但能够使用gulp-traceur
。这是我的gulpfile。
var gulp = require('gulp');
var gulpTraceur = require('gulp-traceur');
var through2 = require('through2');
var gutil = require('gulp-util');
var sourcemaps = require('gulp-sourcemaps');
var copy = require('gulp-copy');
gulp.task('compile',function() {
return gulp.src("./*.es6.js")
.pipe(sourcemaps.init())
.pipe(gulpTraceur({
sourceMaps: true,
outputLanguage: 'es5',
annotations: true, // parse annotations
types: true, // parse types
script: false, // parse as a module
memberVariables: true, // parse class fields
modules: 'instantiate'
}))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dist'));
});
gulp.task('copy', function () {
return gulp.src(['*.html', '*.css'])
.pipe(copy('dist'));
});
gulp.task('watch', function () {
gulp.watch(['*.html', '*.css', './*.es6.js'], ['compile', 'copy']);
});
gulp.task('default', ['compile', 'copy', 'watch']);
这个项目可以在这里看到: