首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么原因导致gulp-typescript每次生成不同的输出

是什么原因导致gulp-typescript每次生成不同的输出
EN

Stack Overflow用户
提问于 2016-10-17 13:49:31
回答 1查看 214关注 0票数 0

我们在构建服务器上使用gulp-typescript,突然间生成的javascript有时无法工作。我们已经追踪到这样一个事实,即生成的javascript在生成的文件中按任意顺序排列。

我的印象是,使用outFile是糟糕的https://basarat.gitbooks.io/typescript/content/docs/tips/outFile.html,现在可能是时候获得一个适当的模块系统了。它突然失败了,这似乎很奇怪。

如果这是解决方案,哪种模块系统是首选的?

gulpfile.js看起来像这样:

代码语言:javascript
复制
var gulp = require("gulp");
var sourcemaps = require('gulp-sourcemaps');
var ts = require('gulp-typescript');
var tsLint = require('gulp-tslint');

var tsProject = ts.createProject('tsconfig.json', {}, ts.reporter.longReporter());

var config = {
    maps: './maps',
    scripts: './content/scripts'
};

gulp.task('tslint', function() {
    return tsProject.src()
        .pipe(tsLint({
            configuration: {
                rules: { "semicolon": true }
            }
        }))
        .pipe(tsLint.report('verbose'));
});

gulp.task('typescript',['tslint'], function() {
    var tsResult = tsProject.src()
        .pipe(sourcemaps.init())
        .pipe(ts(tsProject))
        .pipe(sourcemaps.write(config.maps))
        .pipe(gulp.dest(config.scripts));
    return tsResult;    

});

和tsconfig.json看起来像这样:

代码语言:javascript
复制
{
  "compilerOptions": {
    "declaration": false,
    "noEmitOnError": false,
    "noImplicitAny": false,
    "removeComments": false,
    "target": "es5",
    "outFile": "application.js"
  },
  "files": [
      "list of all the files"       
  ]
}
EN

回答 1

Stack Overflow用户

发布于 2016-10-17 14:22:37

确实不鼓励使用outfile。Basarat在你链接的页面上解释

如果您的代码依赖于任何形式的js排序,那么您将在运行时得到随机错误。

继续你问题的第二部分。

归根结底,你想要使用什么模块系统主要是一个意见问题。

因为..。

  • 大多数捆绑包可以处理相当多不同的模块类型
  • 来模拟您当前的工作流程您将直接将您的模块放入捆绑包中,所以无论如何您都不会真正查看它们。
  • typescript编译器将相对容易地处理输出它们中的任何一个
  • 它看起来与您编写的实际typescript代码

<代码>F211相同

主观上,CommonJS似乎是最流行的(我想部分原因是它有历史,部分原因是当你自动生成tsconfig.json时,它是默认的。AMD也在四处传播,require曾经是一个流行的模块加载器,对那些想要动态加载JS资产的人来说特别有趣。SystemJS现在是JS社区的新热点,它也有自己的模块规范,但它可以加载所有其他模块,所以我不知道有什么令人信服的理由使用系统格式而不是其他替代格式。

在你开始关心动态加载之前,就选一个最美观或者名字最酷的吧。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40079295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档