微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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变量.

完成!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐