3

有什么办法可以在我的 pebble 代码中包含一个外部 JS 库?通常在网页上,我会在我的头部标签中执行此操作:

<script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.11/firebase.js'></script>

但是在 pebble 中,我无法做到这一点,因为我只使用 JS。那么如何为 JavaScript 文件包含一个外部库。

4

3 回答 3

8

目前,您不能包含外部 JS 文件。

如果您使用的是 CloudPebble,那么唯一的方法是将 JS 库文件的内容复制并粘贴到您的 JS 文件中。

如果你在做原生开发,你可以修改 wscript 文件,在构建时将多个 JS 文件合并为一个。

于 2014-05-02T14:47:19.320 回答
5

我认为 Pebble.js 与 PebbleKit JS (v3.8.1) 存在一些混淆。Pebble.js是一个新兴的 SDK,最终程序员将能够编写纯 JavaScript。它仍在烹饪中,因此缺少一些功能,例如绘制线条或获取屏幕尺寸的能力。该 repo 是 C 和 JS 源代码的混合,您可以在其中添加 C 代码以增加缺少的功能,否则您的所有代码都存在于src/js/app.jsor中src/js/app/。无论如何,Pebble.js 确实支持 require.

我不使用 CloudPebble,但我的印象是它要么支持 Pebble.js(因此支持require),要么正计划支持。我认为所有这些 SDK 样板代码都将被隐藏。

PebbleKit JS 不支持require开箱即用的 AFAIK。我做了一个演示,将require支持从 Pebble.js 移植到 PKJS。变化总结如下:

  1. 将您的项目移动src/js/pebble-js-app.jssrc/js/app/index.js.
  2. 从 中删除任何就绪事件侦听器src/js/app/index.jsindex.js将在发出 ready 事件时加载。
  3. src/js/loader.js从 Pebble.js添加。
  4. 添加一个src/js/main.js调用事件require('src/js/app')的方法。ready
  5. wscript使用以下 deltas更新您的。
  6. 添加新模块时,将它们放在下面src/js/app/并且require('./name')将起作用。

我试图在演示的自述文件中涵盖这一切。

顺便说一句,这是所有不同 SDK 的官方分类,但有点令人困惑。

于 2015-12-20T21:41:19.403 回答
3

我不确定自上述答案以来是否发生了变化,但看起来实际上有一种方法可以在保持整洁的同时包含额外的资源。在pebbleJS 页面上,有以下部分包含有关该主题的一些信息。


全局命名空间-需要(路径)

加载另一个 JavaScript 文件,允许您编写多文件项目。包加载松散地遵循 CommonJS 格式。path 是依赖项的路径。


然后,您可以使用以下代码在您的 pebble 项目中“要求”一个 JS 库。这应该可以在 Cloud Pebble 和本机开发中使用。

// src/js/dependency.js
var dep = require('dependency');

然后,您可以使用它,如下所示:

dep.myFunction(); // run a function from the dependency
dep.myVar = 2; // access or change variables

更新: 在为我自己进行了一些研究之后,我已经成功地让 CloudPebble 使用这个功能。它有点复杂,但遵循 ECMAScript 6 标准。下面我发布了一个简单的例子来进行设置。此外,我建议查看PebbleJS中的这段代码,以便更好地参考复杂的设置。

myApp.js

var resource = require('myExtraFile');        // require additional library

console.log(resource.value);                  // logs 42

resource.functionA();                         // logs "This is working now"

myExtraFile.js

var myExtraFile = {                           // create a JSON object to export

  "value" : 42,                               // variable

  functionA : function() {                    // function
    console.log("This is working now!");
  }
};

this.exports = myExtraFile;                   // export this function for
                                              // later use
于 2014-07-15T03:10:16.017 回答