Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Webpack concat和electron index.js需要发布_Reactjs_Webpack_Electron_Require - Fatal编程技术网

Reactjs Webpack concat和electron index.js需要发布

Reactjs Webpack concat和electron index.js需要发布,reactjs,webpack,electron,require,Reactjs,Webpack,Electron,Require,我正在用电子封装构建react应用程序,现在正在进行生产构建 我希望将所有文件连接起来并进行uglified,但当我这样做时,我的index.js无法工作,因为我无法要求依赖项,下面是我的代码: index.js 网页包配置 运行内置应用程序后,我会出现以下错误: A JavaScript error occurred in the main process Uncaught Exception: Error: Cannot find module 'electron-context-menu'

我正在用电子封装构建react应用程序,现在正在进行生产构建

我希望将所有文件连接起来并进行uglified,但当我这样做时,我的index.js无法工作,因为我无法要求依赖项,下面是我的代码:

index.js

网页包配置

运行内置应用程序后,我会出现以下错误:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'electron-context-menu'
    at Module._resolveFilename (module.js:470:15)
    at Function.Module._resolveFilename (/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/electron.asar/common/reset-search-paths.js:35:12)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/app/index.js:3:29)
    at Object.<anonymous> (/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/app/index.js:25:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
主进程中发生JavaScript错误
未捕获异常:
错误:找不到模块“electron上下文菜单”
在Module.\u解析文件名(Module.js:470:15)
在Function.Module.\u resolveFilename(/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/electron.asar/common/reset search path.js:35:12)
在Function.Module.\u加载(Module.js:418:25)
at Module.require(Module.js:498:17)
根据需要(内部/module.js:20:19)
反对。(/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/app/index.js:3:29)
反对。(/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/app/index.js:25:3)
在模块处编译(模块js:571:32)
在Object.Module.\u extensions..js(Module.js:580:10)
在Module.load(Module.js:488:32)

有人知道如何解决此问题吗?

您的错误消息表明“电子上下文菜单”节点模块未安装。打开一个终端并从项目的根目录运行“npm安装--保存electron上下文菜单”来解析


有关electron上下文菜单的更多信息:

这里也有同样的问题<代码>电子上下文菜单未打包到生产版本中。可以通过手动将node_modules文件夹包含到构建中来解决,但这可能不是最好的选择

/* eslint-disable no-unused-vars */
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const autoprefixer = require('autoprefixer');

/**
 * Env
 * Get npm lifecycle event to identify the environment
 */
const ENV = process.env.npm_lifecycle_event;
const isProd = ENV === 'build' || ENV === 'build-all';

const options = {
    module: {
        loaders: [{
            test: /\.js(x|)$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
                presets: ['es2015', 'es2016', 'stage-0', 'react', 'react-hmre'],
            },
        }, {
            test: /\.json$/,
            loaders: ['json-loader'],
        }, {
            test: /\.css$/,
            loader: 'style-loader!css-loader',
        }, {
            test: /\.scss$/,
            loaders: ['style-loader', 'css-loader', 'sass-loader'],
        }, {
            test: /\.(png|woff|woff2|eot|ttf|svg)$/,
            loader: 'url-loader',
        }],
    },
    output: {
        path: path.join(__dirname, 'build'),
        publicPath: '/',
        filename: 'bundle.js',
    },
    resolve: {
        extensions: ['', '.js', '.jsx'],
        packageMains: ['webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main'],
    },
    entry: [
        './src/render.jsx',
    ],
    target: 'electron-main',
    plugins: [
        new HtmlWebpackPlugin({
            template: path.resolve(__dirname, 'src/resource/index.html'),
            filename: 'index.html',
            inject: 'body',
        }),
    ],
};

/**
 * PostCSS
 * Reference: https://github.com/postcss/autoprefixer-core
 * Add vendor prefixes to your css
 */
options.postcss = [
    autoprefixer({
        browsers: ['last 2 version'],
    }),
];

if (!isProd) {
    options.devtool = 'inline-source-map';
    options.plugins.push(new UglifyJSPlugin());
}

module.exports = options;
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'electron-context-menu'
    at Module._resolveFilename (module.js:470:15)
    at Function.Module._resolveFilename (/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/electron.asar/common/reset-search-paths.js:35:12)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/app/index.js:3:29)
    at Object.<anonymous> (/home/damian/projects/ownvpnreact/dist/OwnVpn-linux-x64/resources/app/index.js:25:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)