如何在 nw.js 中开始使用 angular2

2024-01-31

如何在 nw.js 下获得 Angular 2 的工作“hello world”?

我使用本指南成功获得了一个可用的 Angular 2 应用程序:

https://angular.io/docs/js/latest/quickstart.html https://angular.io/docs/js/latest/quickstart.html

和一个使用这个的工作 nw.js 应用程序:

https://egghead.io/lessons/javascript-your-first-nw-js-desktop-application-in-less-than-5-分钟 https://egghead.io/lessons/javascript-your-first-nw-js-desktop-application-in-less-than-5-minutes

结合两者我得到这个:

package.json:

{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.0",
    "systemjs": "0.19.6",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.0",
    "zone.js": "0.5.10"
  },
  "description": "",
  "main": "index.html",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": ""
}

index.html:

<html>

  <head>
    <title>Angular 2 QuickStart</title>

    <!-- 1. Load libraries -->
    <script src="env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="env/lib/node_modules/angular2-quickstart/node_modules/rxjs/bundles/Rx.umd.js"></script>
    <script src="env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-all.umd.js"></script>

    <!-- 2. Load our 'modules' -->
    <script src='app/app.component.js'></script>
    <script src='app/boot.js'></script>

  </head>

  <!-- 3. Display the application -->
  <body>
    <my-app>Loading...</my-app>
  </body>

</html>

app/boot.js:

(function(app) {
  document.addEventListener('DOMContentLoaded', function() {
    ng.platform.browser.bootstrap(app.AppComponent);
  });
})(window.app || (window.app = {}));

app/app.component.js:

(function(app) {
  app.AppComponent =
    ng.core.Component({
      selector: 'my-app',
      template: '<h1>My First Angular 2 App</h1>'
    })
    .Class({
      constructor: function() {}
    });
})(window.app || (window.app = {}));

为了安装节点和依赖项,我运行了(我最终得到了节点 5.4.1;nodeenv 是https://pypi.python.org/pypi/nodeenv/0.13.6 https://pypi.python.org/pypi/nodeenv/0.13.6):

nodeenv --prebuilt env
source env/bin/activate
npm install -g nw
npm install -g

然后运行应用程序nw:

nw .

如果我用简单的纯 HTML“hello world”替换 index.html,我会在 nw 中看到该显示。但是,使用 Angular 2 index.html,我在浏览器中看到来自我的应用程序的“正在加载...”消息,并且在我启动 nw 的终端上显示了该消息:

[22627:0117/010210:ERROR:browser_main_loop.cc(170)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
ATTENTION: default value of option force_s3tc_enable overridden by environment.
[22627:0117/010210:ERROR:nw_shell.cc(336)] TypeError: Cannot read property 'prototype' of undefined
    at Object.apply (file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js:941:35)
    at Object.apply (file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js:835:22)
    at Object.apply (file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js:301:27)
    at Object.<anonymous> (file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js:38:14)
    at Object.1.../core (file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js:40:4)
    at s (file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js:19:254)
    at e (file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js:19:425)
    at file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js:19:443
[22627:0117/010210:INFO:CONSOLE(941)] "Uncaught TypeError: Cannot read property 'prototype' of undefined", source: file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-polyfills.js (941)
[22627:0117/010211:ERROR:nw_shell.cc(336)] reflect-metadata shim is required when using class decorators
[22627:0117/010211:INFO:CONSOLE(2398)] "Uncaught reflect-metadata shim is required when using class decorators", source: file:///home/me/dev/angular2-quickstart/env/lib/node_modules/angular2-quickstart/node_modules/angular2/bundles/angular2-all.umd.js (2398)
[22627:0117/010211:ERROR:nw_shell.cc(336)] ReferenceError: ng is not defined
    at window.app.window.app (file:///home/me/dev/angular2-quickstart/app/app.component.js:3:5)
    at file:///home/me/dev/angular2-quickstart/app/app.component.js:10:3
[22627:0117/010211:INFO:CONSOLE(3)] "Uncaught ReferenceError: ng is not defined", source: file:///home/me/dev/angular2-quickstart/app/app.component.js (3)
[22627:0117/010211:ERROR:nw_shell.cc(336)] ReferenceError: ng is not defined
    at HTMLDocument.<anonymous> (file:///home/me/dev/angular2-quickstart/app/boot.js:3:5)
[22627:0117/010211:INFO:CONSOLE(3)] "Uncaught ReferenceError: ng is not defined", source: file:///home/me/dev/angular2-quickstart/app/boot.js (3)
[22656:0117/010213:WARNING:channel.cc(553)] Failed to send message to remove remote endpoint (local ID 2147483649, remote ID 3)
[22656:0100/000000:WARNING:channel.cc(553)] Failed to send message to remove remote endpoint (local ID 1, remote ID 1)

我在Linux上。


看起来你的 Angular JavaScript 文件没有被加载。我相信这就是 ng 未定义的原因。

要启用工具栏以进行开发,请将以下属性设置放置在 package.json 文件中。

 "toolbar": true,

查看以下屏幕截图,以便您可以开始排除故障。

单击网络选项卡后,按 F5 刷新页面,以便您可以查看哪些文件已加载和尚未加载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 nw.js 中开始使用 angular2 的相关文章

随机推荐

  • go中pprof导入开销有多大

    我有几个 go 程序有一个未使用的输入net http pprof在他们中 import net http pprof http ListenAndServe 127 0 0 1 6060 nil 我想知道这次导入的 CPU 和内存开销是多
  • 如何在 CodeIgniter 3 中使用 PHPSpreadsheet 从 Excel(.xlsx 和 .xls)文件读取数据?

    最近 在我的一个基于 CodeIgniter 的项目中 我需要从 Excel 文件 xlsx 和 xls 读取数据并将这些数据插入 MySQL 不幸的是 我没有使用PHP电子表格之前 因为我不需要使用 Excel 到目前为止我所做的是下载P
  • 如何向 JTextArea 添加文本? (控制台模拟)[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何将文本 命令 如在控制台中 添加到 JTextArea 中 或者 更具体地说 如何在 FTP 程序中添加 JTextArea 作为控制台
  • 从 Native 指针中获取数据

    将数据放入 Perl 6 Native 指针中没什么大不了的 sub memcpy Pointer void source Pointer void destination int32 size is native my Blob blob
  • XCode 7.3.1 更新未安装

    看起来 XCode 发布了新的更新 此问题似乎持续存在 即使 iTunes Store 将更新发布在 过去 30 天内安装的更新 部分 也不会呈现该更新 重新启动后 系统会提示我再次更新 即使我已经完成了两次 最终 当我打开 XCode 时
  • 如何使 Istanbul 生成我所有源代码的覆盖范围?

    目前 伊斯坦布尔仅为我的测试中使用的文件生成覆盖范围 这没关系 但似乎在某种程度上违背了覆盖范围的目的 我没有伊斯坦布尔配置 并且通过调用它npm test使用以下脚本字符串 istanbul cover mocha R dot check
  • DS.FixtureAdapter 丢失带有 hasMany 异步属性的夹具数据

    背景 我已经提交了github问题 https github com emberjs data issues 2136与 Ember Data 团队合作 但我很想了解如何解决这个问题 或者如果我一直都错了 如果出现此错误 您可以看到一个工作
  • 如何在 JavaScript 警报框中打印 Struts2 ActionMessage

    我有一个Action使用发送操作消息的类addActionMessage 我想使用 JavaScript 警报框在 JSP 中显示该消息 我尝试过 alert
  • 全新 MYSQL 安装,用户“root”访问被拒绝

    我有一台旧的 lamp 服务器 我想将其移动到新机器上 所以我做了一个 mysqldump 在新机器上安装了 Ubuntu Server 13 10 在安装过程中安装了 lamp 然后从旧的 lamp 服务器导入了我的旧 mysql 数据库
  • 编译 bevy_dylib v0.5.0 错误:与 `cc` 链接失败:退出状态:1

    在刚刚升级到 Monterey 的 Mac 上 我在尝试执行以下操作时收到以下信息cargo run一个简单的 Bevy 程序 我已经按照推荐重新安装了 XCode CLThere https stackoverflow com quest
  • R.java消失了

    我最近下载了 Android 支持包 并一直在使用它尝试让我的应用程序 在 SDK 10 上运行 使用 GridLayout 不管怎样 我清理了我的项目几次 以解决 XML 文件中的这个错误 然后当我回到 src 中的类时 对 R 的每个引
  • 使用“单一职责原则”强制我的容器拥有公共设置器

    我正在努力遵循 SOLID 原则进行设计 我发现 当您使用 单一职责原则 SOLID 的 S 时 您通常必须在数据容器和数据处理器之间划分类 例如 如果我有一个具有 5 个属性的类 person 它是从数据库读取的 而不是将所有内容都放在一
  • 如何开始使用 svn:externals?

    我正在寻找有关使用 svn externals 的简洁且写得好的教程 我自己已经知道如何以基本方式使用它们 但我想要一篇好文章 在回答最近出现的此类问题时可以链接到 如何处理依赖于同一来源的多个项目 https stackoverflow
  • ORA-12899: 值对于列来说太大

    我以 feed 的形式从 erp 系统获取数据 特别是 feed 中的一列长度仅为 15 在目标表中也对应的列长度也是varchar2 15 但是当我尝试将相同内容加载到数据库中时 它显示错误 例如 ORA 12899 列 emp name
  • 仅当按下特定命令按钮时才根据需要验证输入

    我有 JSF 验证的具体用例 例如我有一个inputText field
  • 选择范围并复制/粘贴到记事本 - 即将完成

    经过大量的工作和测试 确实非常可悲 我终于成功地选择了一个范围工作表 然后将其复制 粘贴到记事本中 此后该文件将由另一个应用程序读取 不幸的是 该应用程序拒绝该文件 我无法调试原因 我收到的唯一消息是发生错误最后一行 令人惊讶的是 当我手动
  • 使用 matplotlib.pcolormesh() 将颜色设置为透明的正确方法?

    我想要低于一定水平的值 在这种情况下0 绘制为透明matplotlib pcolormesh 而且我似乎无法使用我找到的选项进行任何操作 我尝试过设置kwarg vmin 1 我尝试设置限制plt cm cmap set under alp
  • 数据重塑的 R 性能

    我正在尝试在 R 中重塑数据框 但使用推荐的方法似乎有问题 数据帧具有以下结构 ID DATE1 DATE2 VALTYPE VALUE abcd1233 2009 11 12 2009 12 23 TYPE1 123 45 VALTYPE
  • 将 int 60 转换为 60 分钟的时间值

    这看起来应该很简单 但我找不到我需要的时间格式 数据库中的值为 240 这意味着 240 分钟 我如何将其存储在 php 变量中 以便 php 知道这是分钟 这样我就可以在脚本中将其添加到HH MM value 我编辑了下面的代码以反映答案
  • 如何在 nw.js 中开始使用 angular2

    如何在 nw js 下获得 Angular 2 的工作 hello world 我使用本指南成功获得了一个可用的 Angular 2 应用程序 https angular io docs js latest quickstart html