我发现了一些关于如何将Angular2集成到SailsJS应用程序中的文章和指南,但所有这些都要求将node_modules
目录暴露给公众。
此外,这些指南中的大多数都需要在提升Sails之前运行tsc
。由于TypeScript grunt任务很容易定义,因此应该有更好的方法,在解除应用程序之前不需要运行任何东西。
让你的node_modules
目录公开并且我试图找到一种不同的方式是不对的。
首次修改:我的第一个方法:
通过node_modules
任务
assets/vendor
复制到grunt copy
定义grunt-ts
任务(https://gist.github.com/nehalist/6eea5c076d187d785d6c6486f5174c32)
将以下引用添加到layout.ejs
在systemjs.config.js
(https://gist.github.com/nehalist/6eea5c076d187d785d6c6486f5174c32#file-gistfile2-txt)中创建assets/js
grunt ts
现在应该将TypeScript编译为.tmp/js
- 但遗憾的是我遇到了很多类型错误;
Running "ts:assets" (ts) task
Compiling...
Fast compile will not work when --out is specified. Ignoring fast compilation
Using tsc v2.0.10
assets/vendor/@angular/platform-browser-dynamic/src/resource_loader/resource_loader_impl.d.ts(10,23): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/compiler/src/compile_metadata.d.ts(369,30): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/compiler/src/compile_metadata.d.ts(415,30): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/compiler/src/compile_metadata.d.ts(416,20): error TS2304: Cannot find name 'Set'.
第二次修改:通过将grunt-ts
目标设置为es6来修复编译错误。现在一切都在编译,但遗憾的是仍然无效 - 似乎我的应用程序从未初始化。
所有内容都已编译,但似乎systemjs无法启动应用程序?或类似的东西,我还不确定。