在Atom编辑器中使用外部节点安装的JS库

时间:2014-09-05 13:58:22

标签: node.js javascript atom-editor

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

在init脚本中,您可以写:

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

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

答案 1 :(得分:0)

在开发自己的软件包时,您应该能够执行以下操作:

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

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

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

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

当然,所有这一切只有在您自己制作套餐时才有效。不确定这是否也适用于简单的代码片段。