Script mislukt in Webstorm maar niet van terminal

Ik heb een nodejs-script dat phantomjs-node gebruikt om een ​​webpagina te schrapen. Het werkt goed als ik vanuit een terminalvenster ren, maar niet als ik vanuit Webstorm via een run-configuratie voor een Node JS-applicatie ren.

Wat kan de fout in Webstorm veroorzaken?

Ik heb al geprobeerd om het script vanaf de terminal uit te voeren nadat ik de inhoud van .bash_profile heb besproken en het werkt nog steeds. Ik heb ook de inhoud van process.env in een ander voorbeeldscript gecontroleerd en zag dat de waarden in Webstorm versus terminal heel anders zijn.

Het script:

var phantom = require('phantom');
phantom.create(function(ph) {
    return ph.createPage(function(page) {
        return page.open("http://www.google.com", function(status) {
            console.log("opened google? ", status);
            return page.evaluate((function() {
                return document.title;
            }), function(result) {
                console.log('Page title is ' + result);
                return ph.exit();
            });
        });
    });
});

Terminaluitgang (werkt prima!):

opened google?  success
Page title is Google

Webstorm console-uitvoer (mislukt):

/usr/local/bin/node phantom.js
phantom stderr: execvp(): No such file or directory


Process finished with exit code 0
13
Als je een Mac gebruikt, controleer je deze vraag: apple.stackexchange.com/q/51677 .
toegevoegd de auteur CrazyCoder, de bron

2 antwoord

Webstorm stelt wel een PATH-variabele in, maar deze wijkt af van de PATH-variabele die uw app krijgt wanneer deze in de terminal wordt uitgevoerd. Mijn oplossing, een hack:

  1. Type node to get to the REPL
  2. Run process.env
  3. Copy the contents of the PATH value
  4. Add an environment variable to Webstorm called PATH that uses this value. It will overwrite the default PATH variable that Webstorm gives your app.

Gedaan!

25
toegevoegd
waarom is dit in de eerste plaats nodig? het werkt prima in de cmd-regel .. is er een oplossing waar deze extra stap niet nodig is?
toegevoegd de auteur Blub, de bron
@ pgreen2 ga naar het scherm Run/Debug-configuraties, selecteer de Node JS-configuratie die u probeert op te lossen, en aan de rechterkant tussen de velden zoals 'Pad naar knooppunt' en 'Knooppuntparameters' zou u een veld genaamd 'Omgevingsvariabelen' moeten zien . Klik daar op de knop '...' om naar een CRUD-scherm te gaan voor omgevingsvariabelen voor de config.
toegevoegd de auteur Trindaz, de bron
Hoe voeg je de omgevingsvariabele toe aan webstorm?
toegevoegd de auteur pgreen2, de bron
@Trindaz Ahh ... Vlak voor mijn gezicht. Bedankt.
toegevoegd de auteur pgreen2, de bron
Dit hielp me uiteindelijk met Rubymine met hetzelfde probleem.
toegevoegd de auteur forforf, de bron

Als je een Mac gebruikt, zie http://devnet.jetbrains.net/docs/DOC-1160. Dit document is oorspronkelijk geschreven voor RubyMine, maar het is ook van toepassing op WebStorm.

1
toegevoegd