首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子热重装

电子热重装
EN

Stack Overflow用户
提问于 2017-07-13 19:21:31
回答 2查看 6.9K关注 0票数 5

我已经克隆了这个回购用于reactjs开发,并启用了热重加载。它的工作很好,问题是,我想运行这个应用程序在电子热重装。因此,在我的main.js文件中,我指向reactsjs index.html文件。显示空白页。虽然我可以看到标签内容“欢迎反应”在电子窗口,这意味着它的指向正确,但没有内容被显示。

我发现电子在抛出错误

代码语言:javascript
复制
Failed to load resource: net::ERR_FILE_NOT_FOUND   app.js

我是很新的反应开发(只从3-4天前开始),所以不知道如何解决它。下面是我的dir结构和webpack配置

我的应用程序正在http://localhost:8080/运行

目录结构

代码语言:javascript
复制
project
---node_modules
---src
------index.js
------Components  
*babelrc
index.html (used by react)
main.js (used by electron)
package.json
webpack.config.js

Webpack配置

代码语言:javascript
复制
const webpack = require('webpack')
const path = require('path')

module.exports = {
  devtool: 'source-map',
  entry: {
    'app': [
      'babel-polyfill',
      'react-hot-loader/patch',
      './src/index'
    ]
  },
  output: {
    path: path.resolve(__dirname, './dist'),
    filename: '[name].js'
  },
  module: {
    rules: [
      { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }
    ]
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-14 11:18:43

好的,我终于解决了这个问题。问题是"webpack-dev-server",这个命令创建app.js包文件,但实际上并没有将它放在您的目录中。它是从内存中服务的,这就是为什么它没有被生成,我的电子应用程序也找不到它的原因。我在这里张贴解决方案,以防任何初学者面临同样的情况。

只要转到package.json,用--watch param替换webpack开发服务器,它们的工作原理就差不多了。不同的是,webpack --watch将创建一个实际的捆绑文件,并将其放在您在config中指定的目录中。

这不管用

代码语言:javascript
复制
  "scripts": {
    "build": "webpack-dev-server --hot --history-api-fallback --open",
    "app": " ./node_modules/electron/dist/Electron.app/Contents/MacOS/Electron ."
  },

下面的作品

代码语言:javascript
复制
  "scripts": {
    "build": "webpack --watch",
    "app": " ./node_modules/electron/dist/Electron.app/Contents/MacOS/Electron ."
  },
票数 5
EN

Stack Overflow用户

发布于 2017-07-13 19:50:26

要运行react,您应该将其添加到webpack.config.js中的模块中,如下所示

代码语言:javascript
复制
module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: ['react-hot-loader/webpack','babel-loader']
      }
    ]
  },

您还应该将它添加到.babelrc中,如下所示:

代码语言:javascript
复制
{
    "presets": [
        "es2015",
        "react"
    ],
    "plugins": [ "react-hot-loader/babel" ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45089348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档