2015-09-22 2 views
0

Я пытаюсь построить процесс, основанный на gulp, который будет использовать AngularJS из пакета bower и инструмент, называемый debowerify (который, я полагаю, должен позволить мне подключать установленные компоненты боковины к потоку TSIFY/Browserify) , По сути, я хочу создать файл app.js для использования в моем приложении (со всем необходимым JS). Я не могу за свою жизнь заставить AngularJS работать в этом процессе. Я использую файл index.ts (см. Ниже), чтобы использовать мои ссылки для браузера для работы. Это было сложно с угловым, поскольку библиотека оптимизирована процессом компиляции, если вы не используете импорт каким-то образом, следовательно, вызов модуля, который я тестировал в файле index.ts.Совместимость TSIFY с машинописным текстом AngularJS

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', []); 

Вот мой глоток ОПРЕДЕЛЕНИЯ:

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.module). У меня есть подозрения, что CommonJS может не поддерживаться для углового, но я также нашел информацию об interwebs, напротив. Я стараюсь избегать AMD, если это возможно, но если это мой единственный вариант, я бы, конечно, передумал. У меня это приложение работает, если я ссылаюсь на угловой скрипт в своем html, а не на попытку импортировать его в свой машинописный текст, но я просто не удовлетворен этим подходом, поскольку я знаю, что это должно работать.

ответ

1

Угловая настоящее время не поддерживает CommonJS, заменив

import angular = require('angular'); 

с

require('angular'); 

решил это для меня. См. here.

Смежные вопросы