如何更改电子锻造默认端口?

Posted

技术标签:

【中文标题】如何更改电子锻造默认端口?【英文标题】:How to change electron-forge default port? 【发布时间】:2020-06-14 12:46:10 【问题描述】:

我在他们的网站/文档中的任何地方都找不到关于此的参考。我需要把它改成另一个端口,目前它卡在 3000。

这是我使用electron-forge 创建电子项目的方法

yarn create electron-app my-new-app --template=typescript

并且每当端口 3000 中有另一个服务时。它会抛出一个错误:

listen EADDRINUSE :::3000
Error: listen EADDRINUSE :::3000
    at Server.setupListenHandle [as _listen2] (net.js:1360:14)

我的webpack.main.config.js 文件:

const path = require('path');
module.exports = 
  entry: './src/index.ts',
  // Put your normal webpack config below here
  module: 
    rules: require('./webpack.rules')
  ,
  resolve: 
    extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json']
  ,
  devServer: 
    contentBase: path.join(__dirname, 'dist'),
    compress: true,
    port: 9000
  
;

【问题讨论】:

【参考方案1】:

我刚开始使用 electron-forge 并遇到了同样的问题,并且电子/webpack 似乎忽略了我的 devServer.port 值。

在找到this doc for the electron-forge config 之后,我意识到devServer.port 可能被电子伪造覆盖了,并且配置的值是在package.json 中设置的。这是我的:


  "name": "my-project",
  // ...
  "config": 
    "forge": 
      "packagerConfig": ,
      "makers": [
        // ...
      ],
      "plugins": [
        [
          "@electron-forge/plugin-webpack",
          
            "mainConfig": "./webpack.main.config.js",
            "renderer": 
              "config": "./webpack.renderer.config.js",
              "entryPoints": [
                
                  "html": "./src/index.html",
                  "js": "./src/renderer.js",
                  "name": "main_window"
                
              ]
            ,

            // the secret sauce:
            "port": 3001,
            "loggerPort": 9001
          
        ]
      ]
    
  

【讨论】:

【参考方案2】:

按照此处的说明为您的项目设置 Webpack 配置(如果尚未完成):https://www.electronforge.io/config/plugins/webpack

然后,按照此处的说明更改devServer.port 选项:https://webpack.js.org/configuration/dev-server/

【讨论】:

devServer 在哪里?我的webpack.main.config.js 文件没有,如果我添加devServer,它会被电子忽略。仍在运行 3000 当您添加 devServer 及其选项时它应该可以工作。您可以发布您的 webpack 配置的副本吗? 好的,我添加了我的 webpack 配置【参考方案3】:

作为对这个问题的更新,我无法复制最受好评的答案,并最终通过在另一篇文章中实现此答案,以稍微不同的方法更改了默认端口。

Electron-forge with webpack devServer

【讨论】:

以上是关于如何更改电子锻造默认端口?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库的默认80端口如何更改?

如何更改 svelte 中的默认端口 5000?

如何更改 React App 的默认本地主机端口 [重复]

Angular 6+ 如何更改默认端口 4200

如何更改 MySQL 本地登录时的默认端口?

如何更改Apache中的HTTP监听端口