在 Atom 的 init.coffee 中需要模块

Require module in Atom's init.coffee

我已经 Google 寻求答案,因为这是一个常见问题,但所有回复都指向使用替代方法而不是解释为什么这不起作用,所以我想问这里。

我将此代码放入 Atom 的 init.coffee 脚本中: 美化 = require('js-beautify').html

但是 Atom 因 Failed to load init.coffeeCannot find module 'js-beautify' 而失败。奇怪的是,这适用于一个包,如果我在 Atom 的控制台上键入完全相同的代码,它就会起作用。

当然,我可以为此编写一个包,事实上有几个可用,这只是一个示例,因为我想学习如何从 init.coffee 中获取模块以供将来调整。

非常感谢!

当您从 init.coffee require() 时,Atom 在其自己的路径中查找这些模块。您可能想要这样做的一个示例是,如果您有 oni = require('oniguruma') 来访问正则表达式函数。

为了到达 js-beautify,您必须指定其完整路径。到目前为止,只有显式声明整个绝对路径对我有用:

beaut = require 'C:\Users\<username>\.atom\packages\atom-beautify\node_modules\js-beautify'

console.log beaut

实际上,使用这样的模块最可靠的方法是全局安装它,这样您就可以 link 到您的全局 NPM 文件夹。如果包被卸载,链接到包内的模块将会中断。