如何在没有节点的情况下在本地使用 Angular2、systemjs。js/npm?
how to use Angular2, systemjs locally WITHOUT node.js/npm?
这是 index.html 和 angular-alpha35:
<html>
<head>
<meta charset="UTF-8">
<base href="/">
<title>APP Ang2</title>
<script src="scripts/traceur-runtime.js"></script>
<script src="https://jspm.io/system@0.16.js"></script>
<script src="scripts/bundle35/angular2.dev.js"></script>
<script src="scripts/bundle35/router.dev.js"></script>
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<app>Loading...</app>
<script>System.import('app').catch(console.log.bind(console));</script>
</body>
</html>
如果有互联网连接并且可以加载system.js,它工作正常。如果我尝试像这样获取 system.js 的本地副本:
<script src="scripts/system@0.16.11.js"></script>
然后在我将 rx.js
放入根文件夹并将此行放在文件末尾之前没有任何效果:
<script src="scripts/es6-module-loader@0.16.6.js"></script>
</body>
</html>
then System.js 工作正常,但在这种情况下,angular2 绑定有一个奇怪的问题。在我与页面进行一些交互之前它们不会工作(提交表单,打开 select,使一些 div 更改其尺寸,即使是简单的隐藏等)。一旦页面上发生变化,所有绑定就会开始工作并且页面会恢复。
如何在没有 node.js 且没有互联网连接的情况下在本地完成所有这些工作?
您应该像这样包含 angular 2 的 sfx 版本:
<script src="https://code.angularjs.org/2.0.0-alpha.32/angular2.sfx.dev.js"></script>
请注意,这是一个独立的 js 文件,您可以在本地下载。
查看我在 github 中制作的示例项目:
https://github.com/alfonso-presa/angular2-es5-sample
编辑:检查这个 SO 问题以获得更多关于 sfx 含义的说明:
感谢 Arnaud Boeglin's 软件包版本差异的想法,我检查了 es6-module-loder 并且碰巧这个安装工作完美(到目前为止我没有发现任何问题):
<script src="scripts/traceur-runtime.js"></script>
<script src="scripts/es6-module-loader.js"></script>
<script src="scripts/system@0.16.11.js"></script>
<script src="scripts/bundle35/angular2.dev.js"></script>
<script src="scripts/bundle35/router.dev.js"></script>
es6-module-loader 必须在 <head>
标签中的 systemjs 之前。
这是 index.html 和 angular-alpha35:
<html>
<head>
<meta charset="UTF-8">
<base href="/">
<title>APP Ang2</title>
<script src="scripts/traceur-runtime.js"></script>
<script src="https://jspm.io/system@0.16.js"></script>
<script src="scripts/bundle35/angular2.dev.js"></script>
<script src="scripts/bundle35/router.dev.js"></script>
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<app>Loading...</app>
<script>System.import('app').catch(console.log.bind(console));</script>
</body>
</html>
如果有互联网连接并且可以加载system.js,它工作正常。如果我尝试像这样获取 system.js 的本地副本:
<script src="scripts/system@0.16.11.js"></script>
然后在我将 rx.js
放入根文件夹并将此行放在文件末尾之前没有任何效果:
<script src="scripts/es6-module-loader@0.16.6.js"></script>
</body>
</html>
then System.js 工作正常,但在这种情况下,angular2 绑定有一个奇怪的问题。在我与页面进行一些交互之前它们不会工作(提交表单,打开 select,使一些 div 更改其尺寸,即使是简单的隐藏等)。一旦页面上发生变化,所有绑定就会开始工作并且页面会恢复。
如何在没有 node.js 且没有互联网连接的情况下在本地完成所有这些工作?
您应该像这样包含 angular 2 的 sfx 版本:
<script src="https://code.angularjs.org/2.0.0-alpha.32/angular2.sfx.dev.js"></script>
请注意,这是一个独立的 js 文件,您可以在本地下载。
查看我在 github 中制作的示例项目:
https://github.com/alfonso-presa/angular2-es5-sample
编辑:检查这个 SO 问题以获得更多关于 sfx 含义的说明:
感谢 Arnaud Boeglin's 软件包版本差异的想法,我检查了 es6-module-loder 并且碰巧这个安装工作完美(到目前为止我没有发现任何问题):
<script src="scripts/traceur-runtime.js"></script>
<script src="scripts/es6-module-loader.js"></script>
<script src="scripts/system@0.16.11.js"></script>
<script src="scripts/bundle35/angular2.dev.js"></script>
<script src="scripts/bundle35/router.dev.js"></script>
es6-module-loader 必须在 <head>
标签中的 systemjs 之前。