使用 require js 的 nodejs 在 windows 容器上失败但在 windows 主机上工作

nodejs using require js fails on windows container but works on windows host

我正在使用 nodejs 11.14.0(并且也测试过其他版本)。 我有一个同时使用 config.jsrequire js 的 nodejs 脚本。我需要的 Windows 10 和大多数其他 OS 版本的 Windows 上的代码 运行s。 但是,当我尝试 运行 与 Windows 主机 OS 上的 运行 相同的代码时 Windows Docker Container (ie as a guest OS), 我得到以下错误-

C:\TEMP\mypwa>node build.js
fullFilename is: C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\config\default.js

Loading[config]..C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\config\default.js

C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\node_modules\config\lib\config.js:928
    throw new Error("Cannot parse config file: '" + fullFilename + "': " + e3);
    ^

Error: Cannot parse config file: 'C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\config\default.js': TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
    at Config.util.parseFile (C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\node_modules\config\lib\config.js:928:11)
    at C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\node_modules\config\lib\config.js:698:28
    at Array.forEach (<anonymous>)
    at C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\node_modules\config\lib\config.js:692:14
    at Array.forEach (<anonymous>)
    at Config.util.loadFileConfigs (C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\node_modules\config\lib\config.js:691:13)
    at new Config (C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\node_modules\config\lib\config.js:122:27
)
    at Object.<anonymous> (C:\TEMP\bundles\com.foo.studio.viz.core.win64\foowebstudio\node_modules\config\lib\config.js:1752:31)
    at Module._compile (internal/modules/cjs/loader.js:868:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:879:10)

你能帮我解决这个问题吗?

TIA。

在docker中,您可能忘记设置WORKDIR。所以它无法读取您的配置。

我正在使用 Linux OS,因此您需要将语法转换为 window 语法。

Windows docker 容器中缺少一个未默认设置的环境变量。代码需要这个,因此出错了 'undefined' 值。 Windows 环境变量是 HOMEPATH。