正在显示
8 个修改的文件
包含
77 行增加
和
85 行删除
| ... | @@ -9,6 +9,7 @@ const config = require('../config') | ... | @@ -9,6 +9,7 @@ const config = require('../config') |
| 9 | const webpack = require('webpack') | 9 | const webpack = require('webpack') |
| 10 | const WebpackDevServer = require('webpack-dev-server') | 10 | const WebpackDevServer = require('webpack-dev-server') |
| 11 | const webpackHotMiddleware = require('webpack-hot-middleware') | 11 | const webpackHotMiddleware = require('webpack-hot-middleware') |
| 12 | +const Portfinder = require("portfinder") | ||
| 12 | 13 | ||
| 13 | const mainConfig = require('./webpack.main.config') | 14 | const mainConfig = require('./webpack.main.config') |
| 14 | const rendererConfig = require('./webpack.renderer.config') | 15 | const rendererConfig = require('./webpack.renderer.config') |
| ... | @@ -60,40 +61,50 @@ function removeJunk(chunk) { | ... | @@ -60,40 +61,50 @@ function removeJunk(chunk) { |
| 60 | } | 61 | } |
| 61 | 62 | ||
| 62 | function startRenderer() { | 63 | function startRenderer() { |
| 63 | - return new Promise((resolve) => { | 64 | + return new Promise((resolve, reject) => { |
| 64 | rendererConfig.mode = 'development' | 65 | rendererConfig.mode = 'development' |
| 65 | - const compiler = webpack(rendererConfig) | 66 | + Portfinder.basePort = config.dev.port || 9080 |
| 66 | - hotMiddleware = webpackHotMiddleware(compiler, { | 67 | + Portfinder.getPort((err, port) => { |
| 67 | - log: false, | 68 | + if (err) { |
| 68 | - heartbeat: 2500 | 69 | + reject("PortError:" + err) |
| 69 | - }) | 70 | + } else { |
| 70 | - | 71 | + const compiler = webpack(rendererConfig) |
| 71 | - compiler.hooks.compilation.tap('compilation', compilation => { | 72 | + hotMiddleware = webpackHotMiddleware(compiler, { |
| 72 | - compilation.hooks.htmlWebpackPluginAfterEmit.tapAsync('html-webpack-plugin-after-emit', (data, cb) => { | 73 | + log: false, |
| 73 | - hotMiddleware.publish({ action: 'reload' }) | 74 | + heartbeat: 2500 |
| 74 | - cb() | 75 | + }) |
| 75 | - }) | 76 | + |
| 76 | - }) | 77 | + compiler.hooks.compilation.tap('compilation', compilation => { |
| 77 | - | 78 | + compilation.hooks.htmlWebpackPluginAfterEmit.tapAsync('html-webpack-plugin-after-emit', (data, cb) => { |
| 78 | - compiler.hooks.done.tap('done', stats => { | 79 | + hotMiddleware.publish({ action: 'reload' }) |
| 79 | - logStats('Renderer', stats) | 80 | + cb() |
| 80 | - }) | ||
| 81 | - | ||
| 82 | - const server = new WebpackDevServer( | ||
| 83 | - compiler, | ||
| 84 | - { | ||
| 85 | - contentBase: path.join(__dirname, '../'), | ||
| 86 | - quiet: true, | ||
| 87 | - before(app, ctx) { | ||
| 88 | - app.use(hotMiddleware) | ||
| 89 | - ctx.middleware.waitUntilValid(() => { | ||
| 90 | - resolve() | ||
| 91 | }) | 81 | }) |
| 92 | - } | 82 | + }) |
| 83 | + | ||
| 84 | + compiler.hooks.done.tap('done', stats => { | ||
| 85 | + logStats('Renderer', stats) | ||
| 86 | + }) | ||
| 87 | + | ||
| 88 | + const server = new WebpackDevServer( | ||
| 89 | + compiler, | ||
| 90 | + { | ||
| 91 | + contentBase: path.join(__dirname, '../'), | ||
| 92 | + quiet: true, | ||
| 93 | + before(app, ctx) { | ||
| 94 | + app.use(hotMiddleware) | ||
| 95 | + ctx.middleware.waitUntilValid(() => { | ||
| 96 | + resolve() | ||
| 97 | + }) | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + ) | ||
| 101 | + | ||
| 102 | + process.env.PORT = port | ||
| 103 | + server.listen(port) | ||
| 104 | + | ||
| 93 | } | 105 | } |
| 94 | - ) | 106 | + }) |
| 95 | 107 | ||
| 96 | - server.listen(9080) | ||
| 97 | }) | 108 | }) |
| 98 | } | 109 | } |
| 99 | 110 | ||
| ... | @@ -197,16 +208,15 @@ function greeting() { | ... | @@ -197,16 +208,15 @@ function greeting() { |
| 197 | console.log(chalk.blue(' getting ready...') + '\n') | 208 | console.log(chalk.blue(' getting ready...') + '\n') |
| 198 | } | 209 | } |
| 199 | 210 | ||
| 200 | -function init() { | 211 | +async function init() { |
| 201 | greeting() | 212 | greeting() |
| 202 | - | 213 | + try { |
| 203 | - Promise.all([startRenderer(), startMain()]) | 214 | + await startRenderer() |
| 204 | - .then(() => { | 215 | + await startMain() |
| 205 | - startElectron() | 216 | + await startElectron() |
| 206 | - }) | 217 | + } catch (error) { |
| 207 | - .catch(err => { | 218 | + console.error(error) |
| 208 | - console.error(err) | 219 | + } |
| 209 | - }) | ||
| 210 | } | 220 | } |
| 211 | 221 | ||
| 212 | init() | 222 | init() | ... | ... |
| ... | @@ -42,6 +42,7 @@ npm config edit | ... | @@ -42,6 +42,7 @@ npm config edit |
| 42 | 这是花裤衩大大原本的[地址](https://github.com/PanJiaChen/electron-vue-admin) | 42 | 这是花裤衩大大原本的[地址](https://github.com/PanJiaChen/electron-vue-admin) |
| 43 | 43 | ||
| 44 | # 更新日志 | 44 | # 更新日志 |
| 45 | +- 2020年01月09日更新:例行更新依赖,在dev中加入了端口监听检测,如果9080端口被占用就会自动向后开启一个端口号并使用,同时在config/index.js的dev中加入了端口设置,可以快捷设置端口号而不用去更改webpack的配置了。 | ||
| 45 | - 2019年12月18日更新:我在build文件夹内添加了windows的打包依赖,在打包爆错的话,可以尝试使用/build/lib内的压缩包,记得看使用说明哦~ | 46 | - 2019年12月18日更新:我在build文件夹内添加了windows的打包依赖,在打包爆错的话,可以尝试使用/build/lib内的压缩包,记得看使用说明哦~ |
| 46 | - 2019年11月22日更新:得益于群里老哥的提醒,通过修改系统环境变量得到了通过yarn下载electron失败的问题,具体操作如下:用户环境变量中新增两个个变量,一个是变量名为`ELECTRON_MIRROR`,变量值为`https://npm.taobao.org/mirrors/electron/`,另一个是变量名为`registry`,变量值为`https://registry.npm.taobao.org/`,然后系统变量中同样也加上这两个值,完成之后,删除node_module文件夹。然后执行yarn install,如果还是提示未安装,那就去electron文件夹内执行一次yarn install,就好了。这样的话,不仅仅只是yarn更快了,electron的rebuild也会加速很多。所以推荐使用yarn。 | 47 | - 2019年11月22日更新:得益于群里老哥的提醒,通过修改系统环境变量得到了通过yarn下载electron失败的问题,具体操作如下:用户环境变量中新增两个个变量,一个是变量名为`ELECTRON_MIRROR`,变量值为`https://npm.taobao.org/mirrors/electron/`,另一个是变量名为`registry`,变量值为`https://registry.npm.taobao.org/`,然后系统变量中同样也加上这两个值,完成之后,删除node_module文件夹。然后执行yarn install,如果还是提示未安装,那就去electron文件夹内执行一次yarn install,就好了。这样的话,不仅仅只是yarn更快了,electron的rebuild也会加速很多。所以推荐使用yarn。 |
| 47 | (优先尝试)使用npm config edit打开npm配置文件,添加上electron_mirror=https://cdn.npm.taobao.org/dist/electron/ ,然后重启窗口删除node_module文件夹,重新安装依赖即可。 | 48 | (优先尝试)使用npm config edit打开npm配置文件,添加上electron_mirror=https://cdn.npm.taobao.org/dist/electron/ ,然后重启窗口删除node_module文件夹,重新安装依赖即可。 | ... | ... |
| ... | @@ -5,7 +5,8 @@ module.exports = { | ... | @@ -5,7 +5,8 @@ module.exports = { |
| 5 | }, | 5 | }, |
| 6 | dev: { | 6 | dev: { |
| 7 | env: require('./dev.env'), | 7 | env: require('./dev.env'), |
| 8 | - removeElectronJunk: true | 8 | + removeElectronJunk: true, |
| 9 | + port: 9080 | ||
| 9 | }, | 10 | }, |
| 10 | UseStartupChart: true, | 11 | UseStartupChart: true, |
| 11 | IsUseSysTitle: true | 12 | IsUseSysTitle: true | ... | ... |
| ... | @@ -2249,12 +2249,11 @@ | ... | @@ -2249,12 +2249,11 @@ |
| 2249 | "dev": true | 2249 | "dev": true |
| 2250 | }, | 2250 | }, |
| 2251 | "axios": { | 2251 | "axios": { |
| 2252 | - "version": "0.19.0", | 2252 | + "version": "0.19.1", |
| 2253 | - "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.19.0.tgz", | 2253 | + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.19.1.tgz", |
| 2254 | - "integrity": "sha1-jgm/89kSLhM/e4EByPvdAO09Krg=", | 2254 | + "integrity": "sha1-imoE7tI9/nJ0fh3UPGBLjxZ3tao=", |
| 2255 | "requires": { | 2255 | "requires": { |
| 2256 | - "follow-redirects": "1.5.10", | 2256 | + "follow-redirects": "1.5.10" |
| 2257 | - "is-buffer": "^2.0.2" | ||
| 2258 | } | 2257 | } |
| 2259 | }, | 2258 | }, |
| 2260 | "babel-code-frame": { | 2259 | "babel-code-frame": { |
| ... | @@ -4279,9 +4278,9 @@ | ... | @@ -4279,9 +4278,9 @@ |
| 4279 | } | 4278 | } |
| 4280 | }, | 4279 | }, |
| 4281 | "date-fns": { | 4280 | "date-fns": { |
| 4282 | - "version": "2.8.1", | 4281 | + "version": "2.9.0", |
| 4283 | - "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-2.8.1.tgz", | 4282 | + "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-2.9.0.tgz", |
| 4284 | - "integrity": "sha1-IQk2LMtsh8PKAR6eMfcCvAnkEjs=" | 4283 | + "integrity": "sha1-0LF1pcN+1fF7l+InK7wfpa7Gd9I=" |
| 4285 | }, | 4284 | }, |
| 4286 | "de-indent": { | 4285 | "de-indent": { |
| 4287 | "version": "1.0.2", | 4286 | "version": "1.0.2", |
| ... | @@ -4804,9 +4803,9 @@ | ... | @@ -4804,9 +4803,9 @@ |
| 4804 | "dev": true | 4803 | "dev": true |
| 4805 | }, | 4804 | }, |
| 4806 | "electron": { | 4805 | "electron": { |
| 4807 | - "version": "7.1.7", | 4806 | + "version": "7.1.8", |
| 4808 | - "resolved": "https://registry.npm.taobao.org/electron/download/electron-7.1.7.tgz?cache=0&sync_timestamp=1576790381475&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron%2Fdownload%2Felectron-7.1.7.tgz", | 4807 | + "resolved": "https://registry.npm.taobao.org/electron/download/electron-7.1.8.tgz", |
| 4809 | - "integrity": "sha1-Ug4rxCLj39S64WbdO+YhAfLL3FI=", | 4808 | + "integrity": "sha1-fNUP30LFXJ3oarEm6YPSP9idXZk=", |
| 4810 | "dev": true, | 4809 | "dev": true, |
| 4811 | "requires": { | 4810 | "requires": { |
| 4812 | "@electron/get": "^1.0.1", | 4811 | "@electron/get": "^1.0.1", |
| ... | @@ -7139,9 +7138,9 @@ | ... | @@ -7139,9 +7138,9 @@ |
| 7139 | }, | 7138 | }, |
| 7140 | "dependencies": { | 7139 | "dependencies": { |
| 7141 | "core-js": { | 7140 | "core-js": { |
| 7142 | - "version": "3.6.0", | 7141 | + "version": "3.6.2", |
| 7143 | - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.0.tgz", | 7142 | + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.2.tgz?cache=0&sync_timestamp=1578332366962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.2.tgz", |
| 7144 | - "integrity": "sha1-K4VORR3hln0eKYlgJc3BOiUY2eo=", | 7143 | + "integrity": "sha1-J5nqGlkFDwrPUN/om5FtZQOxbKo=", |
| 7145 | "dev": true, | 7144 | "dev": true, |
| 7146 | "optional": true | 7145 | "optional": true |
| 7147 | } | 7146 | } |
| ... | @@ -7231,15 +7230,13 @@ | ... | @@ -7231,15 +7230,13 @@ |
| 7231 | "dev": true | 7230 | "dev": true |
| 7232 | }, | 7231 | }, |
| 7233 | "globalthis": { | 7232 | "globalthis": { |
| 7234 | - "version": "1.0.0", | 7233 | + "version": "1.0.1", |
| 7235 | - "resolved": "https://registry.npm.taobao.org/globalthis/download/globalthis-1.0.0.tgz", | 7234 | + "resolved": "https://registry.npm.taobao.org/globalthis/download/globalthis-1.0.1.tgz?cache=0&sync_timestamp=1577757201256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobalthis%2Fdownload%2Fglobalthis-1.0.1.tgz", |
| 7236 | - "integrity": "sha1-xfuYITqbRZX1nPPnB08UG0Fp2q4=", | 7235 | + "integrity": "sha1-QBFvXZwHH56PsAN2VN8as6g7fvk=", |
| 7237 | "dev": true, | 7236 | "dev": true, |
| 7238 | "optional": true, | 7237 | "optional": true, |
| 7239 | "requires": { | 7238 | "requires": { |
| 7240 | - "define-properties": "^1.1.2", | 7239 | + "define-properties": "^1.1.3" |
| 7241 | - "function-bind": "^1.1.1", | ||
| 7242 | - "object-keys": "^1.0.12" | ||
| 7243 | } | 7240 | } |
| 7244 | }, | 7241 | }, |
| 7245 | "globby": { | 7242 | "globby": { |
| ... | @@ -8080,11 +8077,6 @@ | ... | @@ -8080,11 +8077,6 @@ |
| 8080 | "binary-extensions": "^1.0.0" | 8077 | "binary-extensions": "^1.0.0" |
| 8081 | } | 8078 | } |
| 8082 | }, | 8079 | }, |
| 8083 | - "is-buffer": { | ||
| 8084 | - "version": "2.0.4", | ||
| 8085 | - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.4.tgz", | ||
| 8086 | - "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=" | ||
| 8087 | - }, | ||
| 8088 | "is-callable": { | 8080 | "is-callable": { |
| 8089 | "version": "1.1.4", | 8081 | "version": "1.1.4", |
| 8090 | "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz", | 8082 | "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz", | ... | ... |
| ... | @@ -69,8 +69,8 @@ | ... | @@ -69,8 +69,8 @@ |
| 69 | } | 69 | } |
| 70 | }, | 70 | }, |
| 71 | "dependencies": { | 71 | "dependencies": { |
| 72 | - "axios": "^0.19.0", | 72 | + "axios": "^0.19.1", |
| 73 | - "date-fns": "^2.8.1", | 73 | + "date-fns": "^2.9.0", |
| 74 | "electron-updater": "^4.2.0", | 74 | "electron-updater": "^4.2.0", |
| 75 | "element-ui": "^2.13.0", | 75 | "element-ui": "^2.13.0", |
| 76 | "fs-extra": "^8.1.0", | 76 | "fs-extra": "^8.1.0", |
| ... | @@ -117,7 +117,7 @@ | ... | @@ -117,7 +117,7 @@ |
| 117 | "cross-env": "^6.0.3", | 117 | "cross-env": "^6.0.3", |
| 118 | "css-loader": "^3.4.1", | 118 | "css-loader": "^3.4.1", |
| 119 | "del": "^5.1.0", | 119 | "del": "^5.1.0", |
| 120 | - "electron": "^7.1.7", | 120 | + "electron": "^7.1.8", |
| 121 | "electron-builder": "^21.2.0", | 121 | "electron-builder": "^21.2.0", |
| 122 | "electron-devtools-installer": "^2.2.4", | 122 | "electron-devtools-installer": "^2.2.4", |
| 123 | "eslint": "^6.8.0", | 123 | "eslint": "^6.8.0", |
| ... | @@ -136,6 +136,7 @@ | ... | @@ -136,6 +136,7 @@ |
| 136 | "multispinner": "^0.2.1", | 136 | "multispinner": "^0.2.1", |
| 137 | "node-loader": "^0.6.0", | 137 | "node-loader": "^0.6.0", |
| 138 | "node-sass": "^4.13.0", | 138 | "node-sass": "^4.13.0", |
| 139 | + "portfinder": "^1.0.25", | ||
| 139 | "sass-loader": "^8.0.0", | 140 | "sass-loader": "^8.0.0", |
| 140 | "split2": "^3.1.1", | 141 | "split2": "^3.1.1", |
| 141 | "style-loader": "^1.1.2", | 142 | "style-loader": "^1.1.2", | ... | ... |
| ... | @@ -16,8 +16,8 @@ if (process.env.NODE_ENV !== 'development') { | ... | @@ -16,8 +16,8 @@ if (process.env.NODE_ENV !== 'development') { |
| 16 | global.__static = path.join(__dirname, '/static').replace(/\\/g, '\\\\') | 16 | global.__static = path.join(__dirname, '/static').replace(/\\/g, '\\\\') |
| 17 | } | 17 | } |
| 18 | // 将文件地址挪到这里 | 18 | // 将文件地址挪到这里 |
| 19 | -const winURL = process.env.NODE_ENV === 'development' ? 'http://localhost:9080' : `file://${__dirname}/index.html` | 19 | +const winURL = process.env.NODE_ENV === 'development' ? `http://localhost:${process.env.PORT}` : `file://${__dirname}/index.html` |
| 20 | -const loadingURL = process.env.NODE_ENV === 'development' ? 'http://localhost:9080/static/loader.html' : `file://${__static}/loader.html` | 20 | +const loadingURL = process.env.NODE_ENV === 'development' ? `http://localhost:${process.env.PORT}/static/loader.html` : `file://${__static}/loader.html` |
| 21 | var loadWindow = null | 21 | var loadWindow = null |
| 22 | var mainWindow = null | 22 | var mainWindow = null |
| 23 | 23 | ... | ... |
| ... | @@ -101,7 +101,7 @@ export default { | ... | @@ -101,7 +101,7 @@ export default { |
| 101 | }, | 101 | }, |
| 102 | // 清空数据库的数据 | 102 | // 清空数据库的数据 |
| 103 | deledata() { | 103 | deledata() { |
| 104 | - // dialog为electron实例,data则是显示需要的参数,fun是需要执行的函数,此选项不是为必选的 | 104 | + // data则是显示需要的参数 |
| 105 | const data = { | 105 | const data = { |
| 106 | title: "清除数据", | 106 | title: "清除数据", |
| 107 | buttons: ["确定了!", "才不要,我手滑了"], | 107 | buttons: ["确定了!", "才不要,我手滑了"], |
| ... | @@ -130,12 +130,6 @@ export default { | ... | @@ -130,12 +130,6 @@ export default { |
| 130 | }); | 130 | }); |
| 131 | } | 131 | } |
| 132 | }); | 132 | }); |
| 133 | - // api.MessageBox(dialog, data, fun).then(res => {}); | ||
| 134 | - // const data = { | ||
| 135 | - // title:'发生致命错误', | ||
| 136 | - // message:'?' | ||
| 137 | - // } | ||
| 138 | - // api.ErrorMessageBox(dialog,data) | ||
| 139 | }, | 133 | }, |
| 140 | CheckUpdate(data) { | 134 | CheckUpdate(data) { |
| 141 | switch (data) { | 135 | switch (data) { |
| ... | @@ -207,7 +201,7 @@ export default { | ... | @@ -207,7 +201,7 @@ export default { |
| 207 | this.$alert("下载由于未知原因被中断!", "提示", { | 201 | this.$alert("下载由于未知原因被中断!", "提示", { |
| 208 | confirmButtonText: "重试", | 202 | confirmButtonText: "重试", |
| 209 | callback: action => { | 203 | callback: action => { |
| 210 | - ipcApi.send("download-restart"); | 204 | + ipcApi.send("satrt-download"); |
| 211 | } | 205 | } |
| 212 | }); | 206 | }); |
| 213 | } | 207 | } | ... | ... |
| ... | @@ -9,8 +9,6 @@ | ... | @@ -9,8 +9,6 @@ |
| 9 | </div> | 9 | </div> |
| 10 | <div class="bullshit"> | 10 | <div class="bullshit"> |
| 11 | <div class="bullshit__oops">OOPS!</div> | 11 | <div class="bullshit__oops">OOPS!</div> |
| 12 | - <div class="bullshit__info">版权所有<a class="link-type" href="https://wallstreetcn.com" target='_blank'>华尔街见闻</a></div> | ||
| 13 | - <div class="bullshit__headline">{{ message }}</div> | ||
| 14 | <div class="bullshit__info">请检查您输入的网址是否正确,请点击以下按钮返回主页或者发送错误报告</div> | 12 | <div class="bullshit__info">请检查您输入的网址是否正确,请点击以下按钮返回主页或者发送错误报告</div> |
| 15 | <a href="/" class="bullshit__return-home">返回首页</a> | 13 | <a href="/" class="bullshit__return-home">返回首页</a> |
| 16 | </div> | 14 | </div> |
| ... | @@ -28,11 +26,6 @@ export default { | ... | @@ -28,11 +26,6 @@ export default { |
| 28 | img_404, | 26 | img_404, |
| 29 | img_404_cloud | 27 | img_404_cloud |
| 30 | } | 28 | } |
| 31 | - }, | ||
| 32 | - computed: { | ||
| 33 | - message() { | ||
| 34 | - return '特朗普说这个页面你不能进......' | ||
| 35 | - } | ||
| 36 | } | 29 | } |
| 37 | } | 30 | } |
| 38 | </script> | 31 | </script> | ... | ... |
-
请 注册 或 登录 后发表评论