在electron-forge中从应用程序中删除package.json或其一部分

sd2nnvve  于 2023-05-15  发布在  Electron
关注(0)|答案(1)|浏览(221)

我已经开始使用电子锻造。我的package.json在制作和打包后开始添加到最终输出中。
package.json包含我不想在生产中使用的信息。例如devDependencies或脚本。将package.json放在forge.config.js忽略列表中会破坏构建。
有没有办法在最终打包的应用程序中删除该文件或隐藏其中的某些部分?

mm5n2pyu

mm5n2pyu1#

forge.config.js文件中使用postPackage钩子,例如:

{
    hooks: {
        postPackage: async (forgeConfig, options) => {
            console.info('postPackage() Packages built at:', options.outputPaths);
            if (!(options.outputPaths instanceof Array)) {
                return;
            }
            const packageDotJson = path.join(options.outputPaths[0], 'resources', 'app', 'package.json');
            const content = fs.readFileSync(packageDotJson);
            const json = JSON.parse(content.toString());
            Object.keys(json).forEach((key) => {
                switch (key) {
                    case 'name': {
                        break;
                    }
                    case 'version': {
                        break;
                    }
                    case 'main': {
                        break;
                    }
                    case 'author': {
                        break;
                    }
                    case 'description': {
                        break;
                    }
                    default: {
                        delete json[key];
                        break;
                    }
                }
            });
            fs.writeFileSync(packageDotJson, JSON.stringify(json, null, '\t'));
        },
    }
}

相关问题