我正式放弃了。我正在尝试运行一个使用 es6 import 语法的 Node es6 项目,但子进程无法工作。问题是childprocess.fork使用node而不是babel-node。我已经使用 babel-node 运行它,但现在它们无法通过 process.send 进行通信。我正在寻找解决问题的任何选项,也许有一个更简单的选项。
let appPath = path.dirname(require.main.filename);
let babelPath = path.join(appPath, 'node_modules/.bin/babel-node.cmd'); //WINDOWS
let filepath = path.join(__dirname, 'processes', moduleName);
let process = childProcess.fork(filepath, { execPath: babelPath });
process.on('message', msg => console.log(msg));
这给了我这个:
Error: channel closed at ChildProcess.target.send (internal/child_process.js:523:16)
最佳答案
You should not be using
babel-node
in production.
相反,首先编译所有文件,然后在编译的文件上运行 childProcess.fork()
。
关于javascript - 在 Node 子进程中运行 ES6 导入语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39540388/