【问题标题】:Using an external node-installed JS library in Atom editor在 Atom 编辑器中使用外部节点安装的 JS 库
【发布时间】:2014-09-05 13:58:22
【问题描述】:

我试图弄清楚如何在 Atom 编辑器中使用外部 javascript 库。我使用npm 安装momentjs 库,因为Atom 使用节点。但是,我很困惑现在该怎么办?我找不到在 Atom 中使用库的方法。

我认为我可以转到 Atom init.coffee 文件并执行 require "moment"(也尝试过 require "momentjs"),但似乎没有任何效果。

这背后的全部原因是我可以使用一些 javascript 库来格式化 sn-p 中的日期(我有 another SO question about that which I'll close if this solves it).

但这个问题是关于在 Atom 中安装和运行 javascript 库的一般问题。我浏览了 Atom 文档和谷歌搜索,但我找不到一个好的答案。我想这样的事情会很容易吗?

【问题讨论】:

  • 我认为你把你的技术搞混了,Dan。您已经通过 Node.js 安装了momentjs,因此它只能在 Node.js 中使用。您的目标是制作用于 Node.js 的服务器端 sn-p 还是用于浏览器的客户端 sn-p?此外,Atom 只是一个编辑器,它可以帮助您编辑必须创建的文件 - 它不会帮助您 require 时刻 nodejs 可以使用:var moment = require('moment');
  • 你可能是对的。我听说 Atom 是使用 node 构建的,并且由于 Atom 是一个用 CoffeeScript 编写的基于 Web 的应用程序(使用 Chromium),我认为加载外部 JavaScript 库并使用它会相当简单。我知道 Atom 可以创建将节点库作为依赖项的包,但是当我只想加载和使用单个 JS 库时,这似乎有点矫枉过正。目标只是在 Atom 中创建一个 sn-p,在我开发时输出一个格式良好的日期。我可以将它与原始 JS 一起使用,但它很难看,也不是一个好的解决方案。只是想清理一下。
  • 我明白了!看看我对你其他问题的回答。是的,我同意 Atom 包可能会为此大材小用,您在旁边打开的简单网页应该可以解决问题!

标签: node.js javascript atom-editor


【解决方案1】:

由于 Atom 捆绑了它自己的节点版本(因此不使用您的 global 版本),它不会通过 require 加载全局安装的模块。 但是,require 方法支持绝对路径,如果您知道它是绝对路径,您仍然可以加载任何模块,这在您的特定情况下应该不是问题。

在你的初始化脚本中你可以写:

momentjs = require('/path/to/momentjs')

但要注意二进制文件附带的模块。 Atom 正在使用节点 0.11.13,因此如果您尝试要求的模块已安装为不同版本,您将获得Error: Module did not self-register.。在这种情况下,恐怕唯一的解决方案是将模块安装为 Atom 包的依赖项(如 @nwinkler 所建议的那样)。

【讨论】:

    【解决方案2】:

    在开发自己的包时,您应该能够做到以下几点:

    使用npm install --save moment 安装moment - 这会将moment.js 库安装为依赖项并将其注册到package.json 文件中

    在您的库中,将其导入您的 lib 文件中:

    moment = require 'moment';
    myDate = moment().format();
    

    然后你可以使用 moment 对象来格式化你的时间戳。

    当然,所有这些都只有在您自己制作软件包时才有效。不确定这是否也适用于简单的 sn-ps。

    【讨论】:

    • 不幸的是,我开始认为我自己的包是目前唯一的解决方案。我原以为由于 Atom 是使用 Web 技术构建的,所以我本可以找到一种指向外部 JS 库的方法,但事实似乎并非如此。如果找不到更好的解决方案,我会检查自己的包裹并接受此答案。
    猜你喜欢
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多