https://github.com/terion-name/metod-admin-temp
yarn build
app works
Cannot GET /
I've used this template, generated app. In dev mode everything works ok. But If I build the app I get this:
package.json:
{
"name": "metod-admin",
"version": "1.0.0",
"description": "METOD admin client",
"author": "Terion <[email protected]>",
"private": true,
"main": "main.js",
"build": {
"appId": "com.metod-admin.app",
"directories": {
"buildResources": "static"
}
},
"scripts": {
"dev": "cross-env NODE_ENV=DEV electron .",
"dev:web": "cross-env NODE_ENV=DEV BUILD_TARGET=web nuxt",
"build": "nuxt build && electron-builder",
"build:web": "cross-env nuxt build",
"start": "cross-env nuxt build && nuxt start"
},
"dependencies": {
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/plugin-proposal-optional-chaining": "^7.0.0",
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
"@babel/preset-env": "^7.1.0",
"@babel/preset-flow": "^7.0.0",
"apexcharts": "^2.0.9",
"element-ui": "^2.4.7",
"lockr": "^0.8.5",
"nuxt": "^2.1.0",
"nuxt-babel": "^0.1.2",
"nuxt-i18n": "^5.3.0",
"stylus": "^0.54.5",
"stylus-loader": "^3.0.2",
"underscore": "^1.9.1",
"vue-apexcharts": "^1.2.1",
"vue-lodash": "^2.0.0",
"vue-wysiwyg": "^1.7.2",
"vue2-editor": "^2.6.6",
"vuedraggable": "^2.16.0"
},
"devDependencies": {
"babel-eslint": "^8.2.1",
"cross-env": "^5.2.0",
"electron": "2.0.0-beta.7",
"electron-builder": "^20.8.1",
"electron-devtools-installer": "^2.2.3",
"eslint": "^4.15.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-vue": "^4.0.0"
}
}
@tetreault
nope😷
Because there is no choice, it was solved by the following method.
https://github.com/nuxt-community/electron-template/pull/20
const newWin = () => {
win = new BrowserWindow({
icon: path.join(__dirname, 'static/icon.png'),
webPreferences: {
nodeIntegration: true
},
width: 1920,
height: 1080
})
win.on('closed', () => win = null)
// Wait for nuxt to build
const pollServer = () => {
http.get(_NUXT_URL_, (res) => {
if (res.statusCode === 200) {
win.loadURL(_NUXT_URL_)
} else {
setTimeout(pollServer, 300)
}
}).on('error', pollServer)
}
if (config.dev) {
// Install vue dev tool and open chrome dev tools
const {
default: installExtension,
VUEJS_DEVTOOLS
} = require('electron-devtools-installer')
installExtension(VUEJS_DEVTOOLS.id).then(name => {
console.log(`Added Extension: ${name}`)
win.webContents.openDevTools()
}).catch(err => console.log('An error occurred: ', err))
pollServer()
} else {
pollServer()
}
}
this will work with production env
私も同じ問題を抱えています。
本番用のURLを設定する必要がありますか?
しかし、その本番用のURLが分かりません。
I have the same problem.
Is it necessary to set the URL for production?
However, I do not know the URL for production.
electron-template/template/main.js:
``js const _NUXT_URL_ =
http://localhost:${server.address().port}`・・・
if (config.dev) {
・・・
} else { return win.loadURL(NUXTURL_) }