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

我想弄清楚如何在Atom编辑器中使用外部JavaScript库。 我使用npm来安装momentjs库,因为Atom使用节点。 不过,现在该怎么办呢? 我找不到在Atom中使用该库的方法。

我以为我可以去Atom的init.coffee文件,并做一个require "moment" (也试过require "momentjs" ),但似乎没有任何工作。

这背后的全部原因是,所以我可以使用一些JavaScript库格式化date在一个片段(我有另一个关于这个问题,我会closures,如果这解决了这个问题)。

但是这个问题是关于在Atom中安装和运行javascript库的一般问题。 我已经浏览了Atom文档和Googlesearch,但是我找不到一个好的答案。 我觉得这样很容易?

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

在你的init脚本中你可以写:

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

但要小心与二进制文件一起发行的模块。 Atom正在使用节点0.11.13,所以如果你试图要求的模块已经安装了不同的版本,你会得到一个Error: Module did not self-register. 。 在这种情况下,恐怕唯一的解决办法是将模块安装为Atom包的依赖(如@nwinkler所build议的那样)。

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

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

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

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

然后,您可以使用时刻对象来格式化您的时间戳。

所有这些只会在你自己做套餐的时候才会起作用。 不知道这是否也适用于简单的片段。