title: PhantomJS error: TypeError: undefined is not a constructor (evaluating 'require('system').create()')
body: <p>UPDATE:: PROBLEM SOLVED, I WAS ABLE TO ISOLATE IT SPECIFICALLY TO MY JAVASCRIPT FILE.</p>
  
  <p>cap_screen.js</p>
  
  <pre><code>var page = require('webpage').create(); //Create a new instance of a web page
  var system = require('system').create(); //Our script needs to require Phantom's Web Page module
  
  
  page.onError = function(msg, trace) { //Our script needs to require Phantom's Web Page module
  
      var msgStack = ['ERROR: ' + msg];
  
      if (trace &amp;&amp; trace.length) {
          msg.push('TRACE:');
          trace.forEach(function(t) {
              msgStack.push(' -&gt; ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
          });
      }
  
      console.error(msgStack.join('\n'));
  };
  
  //Now write core of screen cap script
  //Remember: system.args[1] = "http://wwww.clowder.com" system.args[2] = "clowder-pic.png"
  page.open(system.args[1], function(status) {
      console.log('Status: ' + status);
      page.render(system.args[2]); //this line captures the screen
      phantom.exit();
  });
  </code></pre>
  
  <p>My problem is when submitting a URL, the following error pops up:</p>
  
  <pre><code>TypeError: undefined is not a constructor (evaluating 'require('system').create()')
    phantomjs://code/cap_screen.js:10 in global code
  </code></pre>
  
  <p>This is my code:</p>
  
  <p>entries_controller</p>
  
  <pre><code> def create
      @entry = Entry.new(entry_params)
      @entry.image = cap_screen
      if @entry.save
        redirect_to root_path
      else
        render('index')
      end
    end
    private
  
    PATH_TO_PHANTOM_SCRIPT = Rails.root.join('app', 'assets', 'javascripts', 'cap_screen.js')
    def cap_screen
      Dir.chdir(Rails.root.join('public', 'images'))
      system "phantomjs #{PATH_TO_PHANTOM_SCRIPT} #{params['entry_url']} #    {params['entry_url']}.png"
    end
  
    def entry_params
       params.require(:entry).permit(:title, :url)
    end
  </code></pre>
  
  <p>In my cap_screen.js file, my IDE gives me the warning "Unresolved variable or type phantom".</p>
  
  <p>Thoughts?</p>