电子与反应和webpack

时间:2017-05-30 18:42:33

标签: reactjs webpack electron

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

所以我用function myFunction() { return true; } google.script.run.withSuccessHandler(function(myparam){ console.log("Response: "+myparam); }).myFunction();

设置我的webpack
target: "electron"

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

但是我收到了一个错误:无法在my_path_project / dist

找到Electron

我在package.json的脚本是:

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',
      },
    }),
  ],
};

任何人都可以帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

只需将您的开始命令更改为:

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

答案 1 :(得分:0)

来自@Anatoly的解决方案帮助我出现了电子窗口,但我无法对电子做出反应。

所以我发现本教程可以对电子进行反应: https://medium.freecodecamp.com/building-an-electron-application-with-create-react-app-97945861647c

我希望这会有所帮助;)