我正在使用Angular 2.0 / TypeScript(Visual Studio 2015,TS 1.6),而我正试图了解'是如何从'应该工作。 我在app.ts中定义了我的模块,输出路径设置为./build。
在bootstrap.ts中,我用
导入模块import {bootstrap} from "angular2/angular2";
import {App} from "./app";
bootstrap(App);
由于我的构建目标不同于源目标,因此我可以使用的唯一方法是将每个文件添加到System.Config()
<script>
System.config({
packages: {
'./build/bootstrap': { defaultExtension: 'js' },
'./build/app': { defaultExtension: 'js' },
'./build/Components/Comp01/component': { defaultExtension: 'js' },
'./build/Components/Comp02/component': { defaultExtension: 'js' },
},
});
System.import('./build/bootstrap');
</script>
如果我将导入语句更改为使用&#39; ./ build / app.js&#39;然后我得到一个TS2307错误,&#39;找不到模块./build.app.js' 如果我将导入语句更改为&#39; ./ app.ts&#39;然后编译器很高兴,但显然浏览器会尝试加载app.ts而不是app.js
使用&#39; import&#39;的正确方法是什么?在输出位于不同位置的TypeScript中?
答案 0 :(得分:0)
有一种方法,因为我知道::
你应该这样做。
假设您有一个文件夹应用程序,此文件夹app.ts和bootstrap.ts中有两个文件
所以你应该使你的js文件夹结构与ts文件夹结构相同E.g你的build文件夹将有两个文件app.js bootstrap.js
然后使用以下代码
import {App} from "../app";
没有错误,因为loader会找到具有上述指定路径的app.js,导入会找到具有相同指定路径的app.ts。
假设您在app文件夹中有另一个名为component1的文件夹,并且有一个component1.ts文件
然后您应该使您的js文件夹结构与ts文件夹相同,因此build将具有component1文件夹,component1文件夹将具有component1.js
所以supoose你必须在component1.ts中导入app.ts然后
$('.bxslider').bxSlider(..)
它会找到具有相同路径的js和ts