kittencup / angular2-ama-cn

angular2 随便问
691 stars 101 forks source link

System.js直接加载TS,如何得到 __dirname #81

Open chinfeng opened 8 years ago

chinfeng commented 8 years ago

不使用预编译,用 SystemJS 的 transpiler直接加载 ts 文件。加载后文件内部无法获取 dirname 和 filename,因为不是 cjs 模块。当我的加载器指定 format:'cjs' 模块格式,它又不能加载 ts 文件(提示语法错误,无法使用 transpiler)。

请问使用 transpiler 直接加载 ts 文件的时候,在 ts 内部有办法知道自己所在的目录吗(像 cjs 中 __dirname 类似的东西)?

kittencup commented 8 years ago

如果你是为了 templateUrl 或者 styleUrl 可以看 这篇文章 https://github.com/kittencup/angular2-ama-cn/issues/18

SystemJS我没用过,我推荐用webpack打包进行编译

chinfeng commented 8 years ago

@kittencup 仍然解决不了问题,package、asset 占位符只能固定 url 的前缀,而 UrlResolve 自定制规则也是要知道当前 js/ts 路径才能把想对地址拼出来。所以问题又回到原点:在 SystemJS 里面,如何获得当前 ts 文件的目录路径?