当使用grunt-ts
并指定和输出文件时,我的应用程序按预期运行,但由于该选项不支持快速编译,我尝试使用常规编译,其中所有.ts
文件都存在于dist
文件夹
有两个问题,首先,它将无法加载任何导入的文件,因为它将尝试在没有扩展名的情况下查找它。作为一个快速修复,我在require.js文件上编辑了load
fn并且所有依赖项都正确加载,但是源图停止了工作,我得到的只是chrome检查器上的空白文件(当然我不喜欢#39;我想依靠肮脏的黑客攻击。)
请注意,我对requirejs不太熟悉,所以我不太确定这是不是我的错误配置,错误或缺少的东西。
我的咕噜声配置,与ts相关
ts: {
options: {
module: 'amd',
target: 'es5',
experimentalDecorators: true
},
dev: {
src: ['client-app/**/*.ts'],
outDir: "dist",
watch: '.'
}
},
我的bootstrap.js
只是入口点和require.js配置文件
requirejs.config({
baseUrl: '.',
waitSeconds: 20
});
requirejs(['/init'], function(module) {
module.main()
});
已编译的init
文件的简化版
define(["require", "exports", './section-manager.view'], function (require, exports, section_manager_view_1,) {
"use strict";
function main() {
///
}
exports.main = main;
});
//# sourceMappingURL=init.js.map
和html
<script src="/js/lib/require.js" data-main="/bootstrap"></script>
感谢任何帮助,谢谢
编辑:
使用System.js或@Luis答案解决了加载问题。
使用sourceRoot
或
inlineSourceMap: true,
inlineSources: true
到ts选项
答案 0 :(得分:1)
不要使用绝对模块名称。如果您使用绝对名称,则RequireJS假定您在从模块名称生成路径时不希望进行任何更改,并且不添加.js
扩展名。您应该使用相对路径,或者您可以这样做:
requirejs.config({
baseUrl: '/'
});
requirejs(['init'], function(module) {
module.main()
});
通过这样做,RequireJS将自动添加.js
扩展名。