2015-06-21 2 views
10

Я пытаюсь использовать машинописные и jspm для создания углового приложения. Проблема в том, что вы хотите обеспечить загрузку загруженного файла .js, в jspm вам нужно написать импорт, и он гарантирует, что файл загрузится до запуска вашего кода. Но TypScript удаляет мой импорт. Это код машинописного текста, который я написал. Я должен загрузить angular-new-router, а затем добавить его в свою зависимость от модуля.TypScript удаляет операторы импорта, не используемые в коде

import angular = require('angular'); 
import MainController = require('./controllers/MainController'); 
import NgNewRoute = require('angular-new-router'); 

console.log(angular.version); 

var appModule = angular.module('app', ['ngNewRouter']); 
MainController.register(appModule); 

export = appModule; 

Мой вопрос: Как я могу поручить Машинопись, чтобы не удалить мой оператор импорта, или я должен сделать что-то еще, чтобы обеспечить маршрутизатор нагрузки?

PS: Я скомпилирую свой код на ES5 с помощью commonjs.

EDIT: Этот вопрос не совпадает с TypeScript: import module with only statements. У меня эта проблема работает с сторонними библиотеками, поэтому я не хочу их менять. Также я использую шаблон commonjs, так что amd-dependency не исправляет мою проблему!

EDIT 2: Другая проблема заключается в том, что я не могу требовать от файлов, кроме js-модулей, в моем коде машинописного текста.

+0

возможно Дублировать e из [TypeScript: модуль импорта только с утверждениями] (http://stackoverflow.com/questions/16455211/typescript-import-module-with-only-statements) – sainaen

+1

@sainaen: Это как-то связано с моим вопросом, но не полностью , Мне нужны сторонние библиотеки, поэтому не рекомендуется менять их для экспорта переменной или sth. – alisabzevari

+1

Да, принятый ответ на этот вопрос не самый лучший. Посмотрите на другой, с большим количеством голосов, у него есть ссылка на официальный трекер с ответом от одного члена команды TypeScript и двух возможных обходных решений, например, это говорит о том, что может помочь только ссылка на импортированный модуль без каких-либо действий с ним. – sainaen

ответ

3

Как я могу поручить машинопись не удалять мой оператор импорта, или я должен сделать что-то еще, чтобы обеспечить маршрутизатор нагрузки

Вы должны использовать что-то из import в качестве переменной, например

import foo = require('./foo'); 
var bar = foo; // Like this 

вместо того, чтобы просто:

import foo = require('./foo'); 
var bar:foo; // This will not cause an import in the generated JavaScript 
+1

Это сложный способ решения проблемы. – alisabzevari

+0

Это для поддержки использования * ленивой загрузки *: http://basarat.gitbooks.io/typescript/content/docs/project/external-modules.html – basarat

+0

Я не могу понять отношение вашего ответа на предоставил ссылку. Ленивый случай использования загрузки связан с условной загрузкой типа, но я хочу, чтобы у меня была загружена угловая библиотека, прежде чем запускать ее; Или я хочу загрузить файл css до запуска моего кода. – alisabzevari

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