捆绑 Quasar/Express/Electron 应用程序进行生产 - Express-server 无法启动
Posted
技术标签:
【中文标题】捆绑 Quasar/Express/Electron 应用程序进行生产 - Express-server 无法启动【英文标题】:Bundle Quasar/Express/Electron App for production - Express-server doesn't start 【发布时间】:2021-01-11 18:22:45 【问题描述】:我正在构建一个应用程序,并且在我处于开发者模式时一切正常。 Everythink 可以正常工作。但是当我打包我的应用程序时,应用程序打开但它没有启动快速服务器。
对于开发测试,我在 bash 中运行 命令“node server.js”。现在我不知道 quasar.conf.js 或 package.json 中的正确设置 a) 在应用启动时启动 localhost 服务器,然后 b) 关闭应用时关闭本地主机并关闭
我读到的一件事是我可以安装 shelljs 并启动后端服务器,例如具有相同命令 node server.js 的 electron-main.js 文件。 我还发现了一个描述similar problem 的线程,但我还没有“构建”设置,并且不确定是否要更改电子打包器或生成器中“quasar.conf.js”中的任何内容或 package.json 中的某些内容
我很乐意提供任何提示,什么设置有效,最好在应用关闭时关闭服务器。
还有一个很好的资源来找到必要的设置和其他在使用 quasar/express/electron 从开发切换到生产时必须遵守的事项吗?
编辑: 我发现这可能很有价值thread。我认为 background.ts 现在转换为我的 electron-main.js 文件,我还不能正确。
克里斯干杯
package.json
"name": "App",
"version": "0.0.1",
"description": "A Quasar Framework app",
"productName": "Quasar app",
"author": "c",
"private": true,
"scripts":
"lint": "eslint --ext .js,.vue ./",
"test": "echo \"No test specified\" && exit 0"
,
"dependencies":
"@quasar/extras": "^1.0.0",
"axios": "^0.20.0",
"core-js": "^3.6.5",
"cors": "^2.8.5",
"jquery": "^3.5.1",
"quasar": "^1.0.0"
,
"devDependencies":
"@quasar/app": "^2.0.8",
"babel-eslint": "^10.0.1",
"devtron": "^1.4.0",
"electron": "^9.3.1",
"electron-debug": "^3.1.0",
"electron-devtools-installer": "^3.1.1",
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.9.0",
"eslint-loader": "^3.0.3",
"eslint-plugin-vue": "^6.1.2"
,
"browserslist": [
"last 10 Chrome versions",
"last 10 Firefox versions",
"last 4 Edge versions",
"last 7 Safari versions",
"last 8 android versions",
"last 8 ChromeAndroid versions",
"last 8 FirefoxAndroid versions",
"last 10 iOS versions",
"last 5 Opera versions"
],
"engines":
"node": ">= 10.18.1",
"npm": ">= 6.13.4",
"yarn": ">= 1.21.1"
quasar.conf.js
module.exports = function (/* ctx */)
return
boot: [
'axios',
],
css: [
'app.sass'
],
// https://github.com/quasarframework/quasar/tree/dev/extras
extras: [
'roboto-font', // optional, you are not bound to it
'material-icons', // optional, you are not bound to it
],
// Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
build:
vueRouterMode: 'hash',
extendWebpack (cfg)
cfg.module.rules.push(
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /node_modules/
)
,
,
devServer:
https: false,
port: 8080,
open: true
,
// https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
framework:
iconSet: 'material-icons', // Quasar icon set
lang: 'en-us', // Quasar language pack
config: ,
// Quasar plugins
plugins: ['LocalStorage', 'jquery']
,
// animations: 'all', // --- includes all animations
// https://quasar.dev/options/animations
animations: [],
// https://quasar.dev/quasar-cli/developing-s-s-r/configuring-s-s-r
s-s-r:
pwa: false
,
// https://quasar.dev/quasar-cli/developing-pwa/configuring-pwa
pwa:
workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
workboxOptions: , // only for GenerateSW
manifest:
name: `Quasar App`,
short_name: `Quasar App`,
description: `A Quasar Framework app`,
display: 'standalone',
orientation: 'portrait',
background_color: '#ffffff',
theme_color: '#027be3',
icons: []
,
cordova:
,
capacitor:
hideSplashscreen: true
,
// Full list of options: https://quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
electron:
bundler: 'packager', // 'packager' or 'builder'
packager:
,
builder:
// https://www.electron.build/configuration/configuration
appId: 'vuextest'
,
// More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration
nodeIntegration: true,
extendWebpack (/* cfg */)
【问题讨论】:
【参考方案1】:例如,您可能缺少package.json
中的启动脚本
...
"scripts":
"lint": "eslint --ext .js,.vue ./",
"start": "node server.js",
"test": "echo \"No test specified\" && exit 0"
,
...
npm start
是 node.js 应用程序启动的通常方式,它在脚本部分启动任务start
。更多可以找到here
我不确定击落,但是当代码流完成执行并且不等待交互或任何东西时,它应该关闭整个 node.js 应用程序。
【讨论】:
您好 Zavael,感谢您的意见。我试过这个,但它没有改变任何东西。您有其他想法作为启动脚本或类似内容吗?我之前发现使用 shelljs 我可以从代码中调用它,但仍然在命令中。你知道我可以把它放在哪里吗? 我不确定shelljs,也许我会从一个简单的node.js + express helloworld 应用程序开始并部署它以查看它是否有效以上是关于捆绑 Quasar/Express/Electron 应用程序进行生产 - Express-server 无法启动的主要内容,如果未能解决你的问题,请参考以下文章