轻松部署Angular2应用程序,我是否需要学习SystemJS和Gulp?

时间:2016-06-12 11:38:45

标签: angular gulp web-hosting systemjs

我在Angular2中写了一个应用程序。在本地使用lite-server,应用程序完美运行。现在我有一个Webhost,我可以通过ftp传输文件。我天真地尝试将所有文​​件传输到服务器并更正了一些绝对路径,然后可以在服务器上访问我的应用程序。

这不起作用。你实际上可以看到它在这里不起作用 mypage。然后,我开始在网上阅读有关此内容的内容,我找不到我跳的那么多。我发现有些人说你应该只上传所有的js文件,一切都应该有效,这对我不起作用,但也许我做了一些愚蠢的错误。

其他人使用Gulp,Webpack,SystemJs解释流程...... 但是当他们这样做时,他们以一种我不理解的方式解释它,因为我对这些事情一无所知。 在我看来,这些流程也关注使应用程序更小,更高效,我根本不关心,也许在将来我会,但现在我只是希望它在本地工作。

所以我真正想知道的是,尽管制作一个在本地运行的应用程序非常容易,但这很难部署是正常的,在本地和服务器上工作之间是否还有很多?我是否需要关注Gulp,SystemJs,...的教程?是因为Angular2现在不在生产中吗?

如果答案是肯定的,我首先需要哪一个,我该如何开始学习这些东西?

我在这个网站上发现了几个最相关的问题 How to deploy Angular 2 application developed in Typescript to production? 但没有答案对我有帮助。

我也尝试了How to prepare release version with SystemJS and Gulp?中的第一个答案,但我完全缺乏对SystemJs和Gulp的理解。

在另一个问题中,我发现了这个有效的例子example on Github 但是我没有机会将我的项目与这个项目进行比较,我不明白应该在示例中应该是什么,我应该如何保持它在我的项目中的方式,我的所有尝试都在我的应用程序中不再在本地工作或没有改善。

2 个答案:

答案 0 :(得分:2)

在你的index.html中,你有以下几行:

<script src="sse/test/bundle.js"></script>
<script>
  System.import('sse/test/bundle.js')
        .then(null, console.error.bind(console));
</script>

您基本上是两次加载相同的文件。 bundle.js打包为系统包,并且您正在使用第一个脚本标记正确加载它。一旦加载,它就可以被SystemJS使用,你只需要从那里调用主模块。

因此,将导入脚本更改为:

<script>
  System.import('main')
        .then(null, console.error.bind(console));
</script>

和app应该有用......

答案 1 :(得分:0)

你试过https://github.com/angular/angular-cli吗? 相当容易使用,但我建议你学习how JS module works。 SystemJS和Webpack只是加载器和捆绑器的选择,而Gulp只是一个构建系统,很高兴但根本不需要。