cowboyd / commonjs.rb

Common JS for Ruby
github.com/cowboyd/commonjs.rb
MIT License
61 stars 26 forks source link

`Environment.find` doesn't work when appending `.js` to end of `module_id`. #11

Closed vjpr closed 11 years ago

vjpr commented 11 years ago

e.g. In Less 1.4.1

require('./env');
require('./functions');
require('./colors');
require('./visitor.js');
require('./import-visitor.js');
require('./extend-visitor.js');
require('./join-selector-visitor.js');

Errors with:

/Users/Vaughan/.rvm/gems/ruby-2.0.0-p247/gems/commonjs-0.2.6/lib/commonjs/environment.rb:15:inrequire': no such module 'less/visitor.js' (V8::Error)`

vjpr commented 11 years ago

Fix: Change find to:

    def find(module_id)
      # Add `.js` extension if neccessary.
      target = if File.extname(module_id) == '.js' then module_id else "#{module_id}.js" end
      if loadpath = @paths.find { |path| path.join(target).exist? } 
        loadpath.join(target)
      end
    end