【发布时间】:2016-05-09 23:13:44
【问题描述】:
我正在尝试将 Angular 2 集成到 Sails Js 应用程序中。我都是新手。我一直在这里关注this官方教程。它在带有静态 http 服务器的独立模式下工作正常,但是当我尝试集成到sails 应用程序中时,我遇到了以下问题:
1 - 我如何在本地 node_modules 文件夹中引用 angular2 js。每次我这样做时,sails 都会将其解释为一条路线,并为我的脚本提供 404。例如:
<script src="node_modules/angular2/dist/angular2.min.js"></script>
我现在可以使用 cdnjs 链接克服上述问题,但我想知道更好/更合适的解决方案。
2 - 我将 tsc 和 tsc -w 脚本添加到我的 package.json 中,但即使使用 sails lift --verbose 我也没有得到任何输出或错误。这是我将脚本添加到 json 文件的方法:
"scripts": {
"tsc": "tsc",
"tsc:w": "tsc -w",
"debug": "node debug app.js",
"start": "node app.js"
}
最后我不得不用 -g 安装 typescript 并手动编译。那行得通,但同样,它有望与脚本一起使用。很高兴知道我错过了什么。
3 - 在摆脱了上述错误之后,当我再次提升服务器时,它给了我更多的 404 错误,这似乎来自system.src.js,我无法弄清楚。请参阅下面的控制台屏幕截图。
我想我在 Sails 中设置 Angular 应用程序目录可能会出错。只是为了确保我们涵盖了所有内容,这是我正在使用的目录结构。 Sails 应用程序中还没有任何内容。这就是为什么以下路径仅适用于与角度相关的工件和资产。
在资产文件夹中:
应用程序
│ ├── app.component.ts
│ └── main.ts
当然,.ts 文件会编译为 js。
在sails views 文件夹中,我有layout.ejs,其中包含以下内容:
.
.
.
<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.34.2/es6-shim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.17/system-polyfills.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.1/angular2-polyfills.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.17/system.src.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.0.7/rx.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.1/angular2.dev.js"></script>
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('/app/main')
.then(null, console.error.bind(console));
</script>
.
.
.
<my-app>Loading...</my-app>
除了上述文件,我还在sails根文件夹中添加了tsconfig。
我已遵循 official 快速入门教程中的代码和目录结构指南。
【问题讨论】:
标签: javascript angularjs node.js sails.js angular