使用Angular2和SailsJS(不暴露node_modules)

时间:2016-12-02 09:38:44

标签: javascript node.js angular sails.js

我发现了一些关于如何将Angular2集成到SailsJS应用程序中的文章和指南,但所有这些都要求将node_modules目录暴露给公众。

此外,这些指南中的大多数都需要在提升Sails之前运行tsc。由于TypeScript grunt任务很容易定义,因此应该有更好的方法,在解除应用程序之前不需要运行任何东西。

让你的node_modules目录公开并且我试图找到一种不同的方式是不对的。

首次修改:我的第一个方法:

  1. 通过node_modules任务

  2. 将角色目录从assets/vendor复制到grunt copy
  3. 定义grunt-ts任务(https://gist.github.com/nehalist/6eea5c076d187d785d6c6486f5174c32

  4. 将以下引用添加到layout.ejs

  5. systemjs.config.jshttps://gist.github.com/nehalist/6eea5c076d187d785d6c6486f5174c32#file-gistfile2-txt)中创建assets/js

  6. 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无法启动应用程序?或类似的东西,我还不确定。

0 个答案:

没有答案