Reputation: 518
I've already Google'd for an answer, since this is a common problem, but all the replies point in using alternatives instead of explaining why this doesn't work, so I'm asking here.
I put this code in my Atom's init.coffee script: beautify = require('js-beautify').html
But Atom fails with Failed to load init.coffee
and Cannot find module 'js-beautify'
. Curiously enough, this works on a package and this works if I type the exact same code on Atom's console.
Of course, I could write a package for this, in fact there are a couple available, this is just an example because I want to learn how to require modules from init.coffee for future tweaks.
Thanks a lot!
Upvotes: 0
Views: 431
Reputation: 701
When you require()
from init.coffee
, Atom looks for those modules in its own path. An example of where you might want to do that is if you had oni = require('oniguruma')
to get access to regular expression functions.
In order to get to js-beautify
, you have to specify its complete path. So far, only explicitly declaring the entire absolute path has worked for me:
beaut = require 'C:\\Users\\<username>\\.atom\\packages\\atom-beautify\\node_modules\\js-beautify'
console.log beaut
In practice, the most reliable way to use a module like this is to globally install it so that you can link to your global NPM folder. Linking to a module inside a package will break if the package is ever uninstalled.
Upvotes: 2