由于 Anular2 是用 TypeScript 编写的,因此我也用 Typescript 编写我的应用程序。 我想在不运行 Node.js 的情况下将应用程序部署在 Tomcat 服务器上。 经过长时间的搜索,我发现了两种可行的可能性: http://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5?p=preview 在此版本中,Typescript 文件是即时转译的,这可以满足我的需要。 但是,在服务器上部署之前,可以通过转译和缩小它来实现更好的解决方案。我用 gulp 尝试过,但生成的 .ts 文件(带或不带缩小)不起作用。 然后我发现了另一个只有 js 文件工作的 plunker: https://plnkr.co/edit/8lOtCy4GPsq9hZH6D38E?p=preview 比较这些文件,我发现我编译的文件看起来要复杂得多:
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var core_1 = require("@angular/core");
var AppComponent = (function () {
function AppComponent() {
this.name = 'Angular';
}
return AppComponent;
}());
AppComponent = __decorate([
core_1.Component({
selector: 'my-app',
template: "<h1>Hello {{name}}</h1>"
})
], AppComponent);
exports.AppComponent = AppComponent;
所以我尝试了不同的 tsconfig.json 属性来获得一个工作的转译器,但它似乎与转译器本身有关(我对这两个变体都使用了 [email protected] 版本)
我已经尝试过在 tsconfig.json beeing 中使用模型:amd、umd、system、commonjs、es2015,但这并没有解决问题。
我也尝试过 noEmeritHelpers,但问题仍然存在(我认为我曾经读过一个问题 var core_1 = require("@angular/core");
not beeing Defined,但这并没有'别帮我)。
我想从我的应用程序文件夹中转译所有 .ts 文件,将它们组合成一个,然后缩小它。最好的方法是使用 gulp,因为这很容易与我的 Maven 项目结合起来。
最佳答案
使用 Angular CLI
https://github.com/angular/angular-cli
编辑angular-cli.json
配置文件
"outDir": "path/to/maven-app/main/resources/webapp",
然后你可以运行 ng build --prod --watch
或 ng build --watch
然后构建你的 Maven 应用程序,它将包含所有构建文件:js、css、 Assets 等
关于javascript - Angular2 的 TypeScript 到 JavaScript 转译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42141044/