Javascript 分叉进程找不到模块

Javascript 分叉进程找不到模块,javascript,node.js,typescript,Javascript,Node.js,Typescript,我有以下命令: var fk = cp.fork('./client/processes/getClipboardImage.js',[],{cwd: __dirname + '/../../'}); 然后运行以下命令: "use strict"; const electron_1 = require('electron'); var base64Image = electron_1.clipboard.readImage().toDataURL(); process.emit('got-st

我有以下命令:

var fk = cp.fork('./client/processes/getClipboardImage.js',[],{cwd: __dirname + '/../../'});
然后运行以下命令:

"use strict";
const electron_1 = require('electron');
var base64Image = electron_1.clipboard.readImage().toDataURL();
process.emit('got-string', base64Image);
我不知道为什么,但我得到一个错误,说:

找不到模块“electron”

初始化fork的文件确实可以访问electron,那么fork为什么不处理它呢

执行文件位于
controllers
中,它在
utils/Workpace.js
中运行一个方法,该方法创建fork

client/controllers/index.js

import { Workspace } from '../../client/utils/Workspace';
import { globals } from '../../client/utils/global';

ipcRenderer.on('workspace.paste', e => {
    if (globals.activeWorkspace) {
        globals.activeWorkspace.pasteToLayer();
    }
});
import cp = require('child_process');

export class Workspace {
    public pasteToLayer(/*image: Electron.NativeImage*/): Promise<Layer> {
        return new Promise(resolve => {
            var fk = cp.fork('./client/processes/getClipboardImage.js',[],{cwd: __dirname + '/../../'});
            fk.on('got-string', (err, out) => {
                if (err) {
                    throw err;
                }
                // do some final thigs
            });
        });
    }
}
import { Workspace } from '../../client/utils/Workspace';

export class globals {

    public static activeWorkspaceId: string;
    public static activeWorkspace: Workspace;

}
client/utils/Workspace.js

import { Workspace } from '../../client/utils/Workspace';
import { globals } from '../../client/utils/global';

ipcRenderer.on('workspace.paste', e => {
    if (globals.activeWorkspace) {
        globals.activeWorkspace.pasteToLayer();
    }
});
import cp = require('child_process');

export class Workspace {
    public pasteToLayer(/*image: Electron.NativeImage*/): Promise<Layer> {
        return new Promise(resolve => {
            var fk = cp.fork('./client/processes/getClipboardImage.js',[],{cwd: __dirname + '/../../'});
            fk.on('got-string', (err, out) => {
                if (err) {
                    throw err;
                }
                // do some final thigs
            });
        });
    }
}
import { Workspace } from '../../client/utils/Workspace';

export class globals {

    public static activeWorkspaceId: string;
    public static activeWorkspace: Workspace;

}

可能是这个
cwd:uu dirname+'/../../'
将您带到上面 包含节点_模块的级别


如果没有更多关于目录结构的信息,就很难确定它是什么

我用一个屏幕截图和一个描述OK更新了我的问题,看起来你正在制作的cd比node_modules文件夹的级别更高。因此,当它在您的文件夹结构上递归时,其经过的node_模块和node_模块不再可用。Cwd位于生成文件夹的根目录中。生成文件夹是node_modules文件夹的同级。调用
cp.fork
的文件在哪里?看起来
\uuu dirname+'/../../../'
可能升了太多级别?实际调用它的文件是
Workspace.js
哈?从
Workspace.js
到那里的路径不是
。/processs/getClipboardImage.js
client/controllers/index.js->client/utils/Workspace.js->client/processs/getClipboardImage.js