首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gulp-typescript编译器无法编译我的文件

gulp-typescript编译器无法编译我的文件
EN

Stack Overflow用户
提问于 2015-09-08 17:18:27
回答 1查看 1.2K关注 0票数 1

我正在尝试将一个typescript应用程序从ASP.NET MVC环境中带到一个独立的应用程序中,以分离前端和后端的需求。

typescript保持不变,我尝试用gulp编译typescript,但代码似乎无法编译。我关注了丹·瓦林发布的this博文。但是打字稿似乎不能编译。我使用的是安装了Visual Studio 2015 Premium的Windows 8.1笔记本电脑。

我的工程目录结构如下:

代码语言:javascript
复制
/

-- App/
---- Controllers/
------ xxController.ts

-- Scripts/
---- typings/
------ xxlibrary/
-------- library.d.ts
---- tsd.d.ts

我拥有的文件如下:

Gulpfile.config.js:

代码语言:javascript
复制
'use strict';
var GulpConfig = (function () {
function gulpConfig() {

    this.source = '/App';

    this.tsOutputPath = '/Scripts';
    this.allJavaScript = ['/Scripts/**/*.js'];
    this.allTypeScript = this.source + '/**/*.ts';

    this.typings = '/Scripts/typings';
    this.libraryTypeScriptDefinitions = this.typings + '/**/*.ts';
}
return gulpConfig;
})();
module.exports = GulpConfig; 

请注意,当我使用Dan Wahlin的配置中所示的'./‘符号时,gulp会给我一个例外:

代码语言:javascript
复制
    [11:08:11] Using gulpfile D:\Files\Work\Source\ImageManagement\Imagemanagement.App\Gulpfile.js
    [11:08:11] Starting 'ts-lint'...
    [11:08:11] Starting 'compile-ts'...
    stream.js:94
    throw er; // Unhandled stream error in pipe.
    ^
    SyntaxError: Unexpected token 

gulpfile.js:

代码语言:javascript
复制
'use strict';

var gulp = require('gulp'),
    debug = require('gulp-debug'),
    inject = require('gulp-inject'),
    tsc = require('gulp-typescript'),
    tslint = require('gulp-tslint'),
    sourcemaps = require('gulp-sourcemaps'),
    del = require('del'),
    Config = require('./gulpfile.config'),
    tsProject = tsc.createProject('tsconfig.json'),
    browserSync = require('browser-sync'),
    superstatic = require('superstatic');

var config = new Config();

/**
 * Compile TypeScript and include references to library and app .d.ts files.
 */
gulp.task('compile-ts', function () {
    var sourceTsFiles = [config.allTypeScript,                //path to typescript files
                         config.libraryTypeScriptDefinitions]; //reference to library .d.ts files


    var tsResult = gulp.src(sourceTsFiles)
                       .pipe(sourcemaps.init())
                       .pipe(tsc(tsProject));

    tsResult.dts.pipe(gulp.dest(config.tsOutputPath));
    return tsResult.js
                    .pipe(sourcemaps.write('.'))
                    .pipe(gulp.dest(config.tsOutputPath));
});

当我运行这个gulpfile.js时,没有抛出错误,但是Scripts中没有输出。

代码语言:javascript
复制
    [11:15:08] Using gulpfile D:\Files\Work\Source\ImageManagement\Imagemanagement.App\Gulpfile.js
    [11:15:08] Starting 'compile-ts'...
    [11:15:08] Finished 'compile-ts' after 6.84 ms
    Process terminated with code 0.
EN

回答 1

Stack Overflow用户

发布于 2015-09-09 15:40:32

好了,我找到问题了。当我更改此设置时:

代码语言:javascript
复制
'use strict';
var GulpConfig = (function () {
function gulpConfig() {
[...]
    this.allTypeScript = this.source + '/**/*.ts';
[...]
    this.libraryTypeScriptDefinitions = this.typings + '/**/*.ts';
}
return gulpConfig;
})();
module.exports = GulpConfig; 

代码语言:javascript
复制
'use strict';
var GulpConfig = (function () {
function gulpConfig() {
[...]
    this.allTypeScript = './App/**/*.ts';
[...]
    this.libraryTypeScriptDefinitions = './Scripts/typings/**/*.ts';
}
return gulpConfig;
})();
module.exports = GulpConfig; 

它工作得很好。不过,我不知道为什么。

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

https://stackoverflow.com/questions/32453865

复制
相关文章

相似问题

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