运行 NPM 子进程导致 "Cannot find module"
Running NPM subprocess results in "Cannot find module"
我正在创建一个 python 脚本,它应该 运行 我的后端和前端使用 npm run start
因为它们都是节点项目。
子进程不应该等到他们完成执行下一行代码,我想分离他们。
我正在开发 Windows 10.
这样做时出现以下错误:
Error: Cannot find module 'C:\CodigoAsisa\Backend\npm'
←[90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)←[39m
←[90m at Function.Module._load (internal/modules/cjs/loader.js:667:27)←[39m
←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)←[39m
←[90m at internal/main/run_main_module.js:17:47←[39m {
code: ←[32m'MODULE_NOT_FOUND'←[39m,
requireStack: []
}
internal/modules/cjs/loader.js:818
throw err;
我正在使用以下代码:
subprocess.Popen(["node", "npm", "run", "start"], cwd="C:\CodigoAsisa\Backend",
stdout=subprocess.PIPE,
universal_newlines=True)
我也试过以下代码:
subprocess.run('cd C:\CodigoAsisa\Frontend && npm run start',shell=True)
当使用上面的代码(使用 subprocess.run()
的代码)时,我没有收到与节点相关的错误(也没有任何错误),但这不允许我分离我的进程,因此继续下一个代码行。
我需要这个进程在后台 运行,据我所知,subprocess.run() 等待进程结束。
感谢任何帮助!
我通过使用 where npm
解决了这个问题,它返回了我的可执行位置,在本例中位于 C:\Program Files\nodejs\npm.cmd
随后将我的代码更改为:
subprocess.Popen(["C:\Program Files\nodejs\npm.cmd", "run","start"],cwd="C:\CodigoAsisa\Frontend",
stdout=devnull,
universal_newlines=True)
我正在创建一个 python 脚本,它应该 运行 我的后端和前端使用 npm run start
因为它们都是节点项目。
子进程不应该等到他们完成执行下一行代码,我想分离他们。
我正在开发 Windows 10.
这样做时出现以下错误:
Error: Cannot find module 'C:\CodigoAsisa\Backend\npm'
←[90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)←[39m
←[90m at Function.Module._load (internal/modules/cjs/loader.js:667:27)←[39m
←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)←[39m
←[90m at internal/main/run_main_module.js:17:47←[39m {
code: ←[32m'MODULE_NOT_FOUND'←[39m,
requireStack: []
}
internal/modules/cjs/loader.js:818
throw err;
我正在使用以下代码:
subprocess.Popen(["node", "npm", "run", "start"], cwd="C:\CodigoAsisa\Backend",
stdout=subprocess.PIPE,
universal_newlines=True)
我也试过以下代码:
subprocess.run('cd C:\CodigoAsisa\Frontend && npm run start',shell=True)
当使用上面的代码(使用 subprocess.run()
的代码)时,我没有收到与节点相关的错误(也没有任何错误),但这不允许我分离我的进程,因此继续下一个代码行。
我需要这个进程在后台 运行,据我所知,subprocess.run() 等待进程结束。
感谢任何帮助!
我通过使用 where npm
解决了这个问题,它返回了我的可执行位置,在本例中位于 C:\Program Files\nodejs\npm.cmd
随后将我的代码更改为:
subprocess.Popen(["C:\Program Files\nodejs\npm.cmd", "run","start"],cwd="C:\CodigoAsisa\Frontend",
stdout=devnull,
universal_newlines=True)