【问题标题】:TSIFY compatibility with Typescript AngularJSTSIFY 与 Typescript AngularJS 的兼容性
【发布时间】:2015-12-19 23:20:37
【问题描述】:

我正在尝试构建一个基于 gulp 的进程,该进程将使用来自 bower 包的 AngularJS 和一个名为 debowerify 的工具(我相信它应该让我将已安装的 bower 组件插入到 TSIFY/Browserify 流中)。本质上,我想构建一个 app.js 文件以在我的应用程序中使用(包含我需要的所有 JS)。我一辈子都无法让 AngularJS 在这个过程中工作。我正在使用 index.ts 文件(见下文)来引入我的参考资料供 browserify 使用。 Angular 一直很棘手,因为编译过程对库进行了优化,除非您以某种方式使用导入,因此我在 index.ts 文件中测试了模块调用。

index.ts

//#### Type Definitions ####
/// <reference path="../../typings/angularjs/angular.d.ts" />

/// <reference path="greeter.ts" />

import angular = require('angular');
import greeter = require('./Greeter');
var greet = new greeter();
greet.sayHello();

angular.module('app', []);

这是我的gulp定义:

gulpfile.js

var gulp = require('gulp');

var source = require('vinyl-source-stream');

var browserify = require('browserify');
var tsify = require('tsify');

var debowerify = require('debowerify');

var exorcist = require('exorcist');

var config = {
    publicDir: __dirname + '/app',
    path: __dirname + '/src/typescript',
    main: 'index.ts',
    result: 'app.js'
};

gulp.task('compile-ts', function(){
    var bundler = browserify({ 
                    basedir: config.path, 
                    debug: true
                })
            .add(config.path + '/' + config.main)
            .plugin(tsify)
            .transform(debowerify);

    return bundler.bundle()
        .pipe(exorcist(config.publicDir + '/app.js.map'))
        .pipe(source(config.result))
        .pipe(gulp.dest(config.publicDir));
});

我构建的自定义 TS 文件(即:greeter.ts)运行良好。但是,当我运行我的 gulp compile-ts 任务时,只有在浏览器通知我 angular 未定义(在调用 angular.module 时)时,我才在控制台中没有错误。我怀疑 CommonJS 可能不支持 Angular,但我也在互联网上找到了相反的信息。如果可能,我会尽量避免使用 AMD,但如果这是我唯一的选择,我肯定会重新考虑。如果我链接到我的 html 中的 angular 脚本而不是尝试将其导入到我的打字稿中,我就有这个应用程序工作,但我只是对这种方法不满意,因为我知道这应该可以工作。

【问题讨论】:

    标签: angularjs typescript gulp browserify


    【解决方案1】:

    Angular 目前不支持 CommonJS,替换

    import angular = require('angular');
    

    require('angular');
    

    为我解决了。见here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-30
      • 2019-06-28
      • 2018-07-29
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      相关资源
      最近更新 更多