node.js – 脚本在Webstorm中失败,但不是从终端

我有一个nodejs脚本,它使用phantomjs-node来浏览一个网页.当我从终端窗口运行时,它工作正常,但是当我通过Node JS应用程序的运行配置从Webstorm内部运行时,它不工作.

什么可能导致Webstorm中的错误

在注释掉.bash_profile的内容之后,我已经尝试从终端运行脚本,它仍然可以工作.我还检查了另一个示例脚本中的process.env的内容,并看到Webstorm与终端的值完全不同.

剧本:

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();
            });
        });
    });
});

终端输出(工程好!):

opened google?  success
Page title is Google

Webstorm控制台输出(失败):

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


Process finished with exit code 0

解决方法

Webstorm确实设置了PATH变量,但它与您的应用程序在终端中运行时获取的PATH变量不同.我的解决方案,一个黑客:

>键入节点到达REPL
>运行process.env
>复制PATH值的内容
>将一个环境变量添加到使用此值的Webstorm称为PATH.它将覆盖Webstorm为您的应用程序提供的认PATH变量.

完成!

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...