【问题标题】:Running a shell script from node - ERROR { [Error: Cannot find module 'xxx'] code: 'MODULE_NOT_FOUND' }从节点运行 shell 脚本 - 错误 { [错误:找不到模块 'xxx'] 代码:'MODULE_NOT_FOUND' }
【发布时间】:2016-04-18 19:39:50
【问题描述】:

使用节点 4.4.2。在 ubuntu linux 上调用 .sh 文件时收到以下错误。

ERROR { [错误:找不到模块 'src/util/buildscripts/build.sh'] 代码:'MODULE_NOT_FOUND' }

        var sh = require.resolve('src/util/buildscripts/build.sh'),
            profile = require.resolve('profiles/app.profile.js'),
            ls = spawn(sh, '--profile', profile]);
        });

build.sh 的位置似乎正确,但错误“MODULE_NOT_FOUND”对我来说似乎具有误导性,因为我没有尝试导入模块,而只是在子进程中打开 .sh 文件。

注意我有一个非常相似的 Windows 版本,它在下面的例子中运行得很好:

你有什么想法吗?

        var bat = require.resolve('../src/util/buildscripts/build.bat'),
            profile = require.resolve('../profiles/app.profile.js'),
            ls = spawn(bat, ['--profile', profile]);

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    您为 Windows 版本编写的路径与失败版本不同。你确定 Ubuntu 是对的吗?

    【讨论】:

    • 谢谢,但我也试过 var bat = require.resolve('../src/util/buildscripts/build.sh'), profile = require.resolve('../profiles /app.profile.js'), ls = spawn(bat, ['--bin', 'java', '--profile', profile]);并且不起作用。
    【解决方案2】:

    我能够使用 shelljs 和这个命令解决这个问题:

    sed('-i', 's/\r//', 'src/util/buildscripts/*.sh');
    

    问题是由错误的行结束引起的。

    【讨论】:

      最近更新 更多