【问题标题】:electron with react and webpack带有反应和 webpack 的电子
【发布时间】:2017-10-31 08:45:26
【问题描述】:

我正在尝试使用 webpack 运行一个简单的电子应用程序并做出反应。

所以我将我的 webpack 设置为 target: "electron"

const webpack = require('webpack');
const path = require('path');
const SassLintPlugin = require('sasslint-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');

const extractSass = new ExtractTextPlugin({
  filename: '[name].css',
  disable: process.env.NODE_ENV === 'development',
});

module.exports = {
  target: 'electron',
  context: path.resolve(__dirname),
  entry: {
    app: './assets/js/components/index',
    main: './main',
  },
  output: {
    publicPath: '/dist/',
    path: path.resolve('./dist/'),
    filename: '[name].js',
  },
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        loader: 'eslint-loader',
        include: path.resolve(__dirname, './assets/js/'),
        exclude: /node_modules/,
        enforce: 'pre',
      },
      {
        test: /\.jsx?$/,
        include: path.resolve(__dirname, './assets/js/'),
        exclude: /node_modules/,
        loader: 'babel-loader',
      },
      {
        test: /\.scss$/,
        include: path.resolve(__dirname, './assets/scss/'),
        loader: extractSass.extract({
          use: [
            { loader: 'css-loader' },
            { loader: 'sass-loader' },
          ],
          // use style-loader in development
          fallback: 'style-loader',
        }),
        exclude: /node_modules/,
      },
      {
        test: /\.(eot|svg|ttf|woff|woff2)$/,
        loader: 'file?name=public/fonts/[name].[ext]',
      },
    ],
  },
  resolve: {
    extensions: ['.js', '.jsx'],
    modules: [path.resolve(__dirname, 'node_modules')],
  },
  plugins: [
    new webpack.optimize.CommonsChunkPlugin({
      names: ['main'],
    }),
    new SassLintPlugin({
      configFile: '.sass-lint.yml',
      context: [path.resolve(__dirname, './assets/scss/')],
      ignoreFiles: [],
      ignorePlugins: [],
      glob: '**/*.s?(a|c)ss',
      quiet: false,
      failOnWarning: false,
      failOnError: true,
      testing: false,
    }),
    extractSass,
    new HtmlWebpackPlugin({
      title: 'Calendar Component',
      template: 'assets/index-template.html',
      minify: {
        collapseWhitespace: process.env.NODE_ENV === 'production',
      },
    }),
  ],
};

我的包已正确创建到 index.html、app.js 和 main.js 以及 ./dist 文件夹中。

但我收到一个错误:无法在 my_path_project/dist 找到 Electron

我在 package.json 的脚本是:

"main": "./dist/main.js",
  "scripts": {
    "start": "electron ./dist/",
    "dev": "NODE_ENV=development webpack"
  },

谁能帮帮我?

提前致谢。

【问题讨论】:

    标签: reactjs webpack electron


    【解决方案1】:

    可能是因为没有人。您正在将电子安装到您的节点模块,您指的是modules: [path.resolve(__dirname, 'node_modules')]

    只需将启动命令更改为:

    "main": "dist/main.js",
      "scripts": {
        "start": "electron ."
      },
    

    【讨论】:

      【解决方案2】:

      @Anatoly 的解决方案帮助我出现了电子窗口,但我无法在电子上运行反应。

      所以我发现这个教程可以在电子上运行反应: https://medium.freecodecamp.com/building-an-electron-application-with-create-react-app-97945861647c

      我希望这会有所帮助;)

      【讨论】:

        猜你喜欢
        • 2018-12-02
        • 2018-12-14
        • 2020-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-05
        • 2020-07-22
        • 2021-01-25
        相关资源
        最近更新 更多