鍍金池/ 問(wèn)答/HTML/ electron-packager打包應(yīng)用后,頁(yè)面空白,應(yīng)用中的index.ht

electron-packager打包應(yīng)用后,頁(yè)面空白,應(yīng)用中的index.html不能執(zhí)行引入的js腳本

問(wèn)題描述

我用webpack-vue腳手架創(chuàng)建了工程,開(kāi)發(fā)完成后需要適配多平臺(tái),所以又用electron-packager來(lái)打包,完成打包后,打開(kāi)應(yīng)用,index.html中引入的js和css文件路徑都沒(méi)有錯(cuò),但是js文件沒(méi)有執(zhí)行,頁(yè)面也是完全空白,求問(wèn)各位大神,這個(gè)怎么解決。問(wèn)題截圖如下:

clipboard.png

clipboard.png

問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法

這個(gè)應(yīng)用在web上是可以啟動(dòng)的,用的是webpack-dev的server,而且我直接用electron啟動(dòng)桌面應(yīng)用也是沒(méi)問(wèn)題的,我在想用electron生成桌面應(yīng)用后是否也需要啟動(dòng)一個(gè)localhost的server,但是我不知道怎么啟動(dòng)這樣一個(gè)server

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)
我是用的雙package.json,package.json的主要內(nèi)容如下:
打包腳本:
"packager": "electron-packager ./dist VEEClient --platform=darwin --arch=x64 --overwrite --prune --overwrite"
"main": "electron.js"
electron.js的內(nèi)容如下:
const {app, BrowserWindow} = require('electron')
const url = require('url')
const path = require('path')

let window;
function createWindow() {

window = new BrowserWindow({
    title: 'VEE Client',
    height: 600,
    width: 1000,
    minHeight: 600,
    minWidth: 800,
    minimizable: true,
    webPreferences: {
        webSecurity: false
    }
})
window.loadURL(url.format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file:',
    slashes: true
}))
window.openDevTools()
window.on('close', () => {
    window = null
})

}
app.on('ready', createWindow)
app.on('window-all-closed', () => {

if (process.platform !== 'darwin') {
    app.quit()
}

})
app.on('activate', () => {

if (window === null) {
    createWindow()
}

})

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

我想要的結(jié)果是打包后的應(yīng)用啟動(dòng)后和通過(guò)Web啟動(dòng)后的結(jié)果是一樣的。

回答
編輯回答
苦妄

看不到你的目錄結(jié)構(gòu),不過(guò)看你的描述,應(yīng)該是在開(kāi)發(fā)環(huán)境中用的是webpack的server,所以index.html引用的是server地址的打包后的js?,F(xiàn)在生產(chǎn)環(huán)境了,啟動(dòng)不了server,所以js引用不到
解決辦法:修改index.html引用js的地址,改成相對(duì)路徑或者目錄的絕對(duì)路徑,然后將wepkack打包出的地址改成對(duì)應(yīng)的路徑,比如
目錄結(jié)構(gòu)

|-src
   |-index.html
   |-dist
       |- common.js//打包后的文件 
|-webpack.config.js

// index.html 
<script src="dist/common.js"></script>
//webpack.config.js
...
output: {
    path: path.resolve(__dirname,'src/dist'),
    filename: '[name].js',
    publicPath: '/src/dist'
},
...
2018年5月5日 00:55