张恒

合并分支

1 { 1 {
2 "comments": false, 2 "comments": false,
3 "env": { 3 "env": {
4 - "test": {
5 - "presets": [
6 - ["env", {
7 - "targets": { "node": 7 }
8 - }],
9 - "stage-0"
10 - ],
11 - "plugins": ["istanbul"]
12 - },
13 "main": { 4 "main": {
14 "presets": [ 5 "presets": [
15 - ["env", { 6 + [
16 - "targets": { "node": 7 } 7 + "@babel/preset-env",
17 - }], 8 + {
18 - "stage-0" 9 + "targets": {
10 + "node": 7
11 + }
12 + }
13 + ]
14 + ],
15 + "plugins": [
16 + "@babel/plugin-syntax-dynamic-import",
17 + "@babel/plugin-syntax-import-meta",
18 + "@babel/plugin-proposal-class-properties",
19 + "@babel/plugin-proposal-json-strings",
20 + [
21 + "@babel/plugin-proposal-decorators",
22 + {
23 + "legacy": true
24 + }
25 + ],
26 + "@babel/plugin-proposal-function-sent",
27 + "@babel/plugin-proposal-export-namespace-from",
28 + "@babel/plugin-proposal-numeric-separator",
29 + "@babel/plugin-proposal-throw-expressions",
30 + "@babel/plugin-proposal-export-default-from",
31 + "@babel/plugin-proposal-logical-assignment-operators",
32 + "@babel/plugin-proposal-optional-chaining",
33 + [
34 + "@babel/plugin-proposal-pipeline-operator",
35 + {
36 + "proposal": "minimal"
37 + }
38 + ],
39 + "@babel/plugin-proposal-nullish-coalescing-operator",
40 + "@babel/plugin-proposal-do-expressions",
41 + "@babel/plugin-proposal-function-bind"
19 ] 42 ]
20 }, 43 },
21 "renderer": { 44 "renderer": {
22 "presets": [ 45 "presets": [
23 - ["env", { 46 + [
24 - "modules": false 47 + "@babel/preset-env",
25 - }], 48 + {
26 - "stage-3" 49 + "modules": false
50 + }
51 + ]
52 + ],
53 + "plugins": [
54 + "@babel/plugin-syntax-dynamic-import",
55 + "@babel/plugin-syntax-import-meta",
56 + "@babel/plugin-proposal-class-properties",
57 + "@babel/plugin-proposal-json-strings",
58 + [
59 + "@babel/plugin-proposal-decorators",
60 + {
61 + "legacy": true
62 + }
63 + ],
64 + "@babel/plugin-proposal-function-sent",
65 + "@babel/plugin-proposal-export-namespace-from",
66 + "@babel/plugin-proposal-numeric-separator",
67 + "@babel/plugin-proposal-throw-expressions",
68 + "@babel/plugin-proposal-export-default-from",
69 + "@babel/plugin-proposal-logical-assignment-operators",
70 + "@babel/plugin-proposal-optional-chaining",
71 + [
72 + "@babel/plugin-proposal-pipeline-operator",
73 + {
74 + "proposal": "minimal"
75 + }
76 + ],
77 + "@babel/plugin-proposal-nullish-coalescing-operator",
78 + "@babel/plugin-proposal-do-expressions",
79 + "@babel/plugin-proposal-function-bind"
27 ] 80 ]
28 }, 81 },
29 "web": { 82 "web": {
30 "presets": [ 83 "presets": [
31 - ["env", { 84 + [
32 - "modules": false 85 + "@babel/preset-env",
33 - }], 86 + {
34 - "stage-3" 87 + "modules": false
88 + }
89 + ]
90 + ],
91 + "plugins": [
92 + "@babel/plugin-syntax-dynamic-import",
93 + "@babel/plugin-syntax-import-meta",
94 + "@babel/plugin-proposal-class-properties",
95 + "@babel/plugin-proposal-json-strings",
96 + [
97 + "@babel/plugin-proposal-decorators",
98 + {
99 + "legacy": true
100 + }
101 + ],
102 + "@babel/plugin-proposal-function-sent",
103 + "@babel/plugin-proposal-export-namespace-from",
104 + "@babel/plugin-proposal-numeric-separator",
105 + "@babel/plugin-proposal-throw-expressions",
106 + "@babel/plugin-proposal-export-default-from",
107 + "@babel/plugin-proposal-logical-assignment-operators",
108 + "@babel/plugin-proposal-optional-chaining",
109 + [
110 + "@babel/plugin-proposal-pipeline-operator",
111 + {
112 + "proposal": "minimal"
113 + }
114 + ],
115 + "@babel/plugin-proposal-nullish-coalescing-operator",
116 + "@babel/plugin-proposal-do-expressions",
117 + "@babel/plugin-proposal-function-bind"
35 ] 118 ]
36 } 119 }
37 }, 120 },
38 - "plugins": ["transform-runtime","dynamic-import-webpack"] 121 + "plugins": [
122 + "@babel/transform-runtime",
123 + "@babel/plugin-syntax-dynamic-import"
124 + ]
39 } 125 }
......
1 .DS_Store 1 .DS_Store
2 node_modules/ 2 node_modules/
3 -build/win-ia32-unpacked/
4 -build/win-unpacked/
5 /dist/ 3 /dist/
4 +build/win-unpacked/
5 +build/win-ia32-unpacked/
6 npm-debug.log* 6 npm-debug.log*
7 yarn-debug.log* 7 yarn-debug.log*
8 yarn-error.log* 8 yarn-error.log*
...@@ -14,4 +14,5 @@ yarn-error.log* ...@@ -14,4 +14,5 @@ yarn-error.log*
14 *.ntvs* 14 *.ntvs*
15 *.njsproj 15 *.njsproj
16 *.sln 16 *.sln
17 +electron-vue-template-ts.7z
17 server/client/electron-vue-admin Setup 0.0.1.exe 18 server/client/electron-vue-admin Setup 0.0.1.exe
......
1 -# Commented sections below can be used to run tests on the CI server
2 -# https://simulatedgreg.gitbooks.io/electron-vue/content/en/testing.html#on-the-subject-of-ci-testing
3 -osx_image: xcode8.3
4 -sudo: required
5 -dist: trusty
6 -language: c
7 -matrix:
8 - include:
9 - - os: osx
10 - - os: linux
11 - env: CC=clang CXX=clang++ npm_config_clang=1
12 - compiler: clang
13 -cache:
14 - directories:
15 - - node_modules
16 - - "$HOME/.electron"
17 - - "$HOME/.cache"
18 -addons:
19 - apt:
20 - packages:
21 - - libgnome-keyring-dev
22 - - icnsutils
23 - #- xvfb
24 -before_install:
25 -- mkdir -p /tmp/git-lfs && curl -L https://github.com/github/git-lfs/releases/download/v1.2.1/git-lfs-$([
26 - "$TRAVIS_OS_NAME" == "linux" ] && echo "linux" || echo "darwin")-amd64-1.2.1.tar.gz
27 - | tar -xz -C /tmp/git-lfs --strip-components 1 && /tmp/git-lfs/git-lfs pull
28 -- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils; fi
29 -install:
30 -#- export DISPLAY=':99.0'
31 -#- Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
32 -- nvm install 7
33 -- curl -o- -L https://yarnpkg.com/install.sh | bash
34 -- source ~/.bashrc
35 -- npm install -g xvfb-maybe
36 -- yarn
37 -script:
38 -#- xvfb-maybe node_modules/.bin/karma start test/unit/karma.conf.js
39 -#- yarn run pack && xvfb-maybe node_modules/.bin/mocha test/e2e
40 -- yarn run build
41 -branches:
42 - only:
43 - - master
1 -# Electron-Vue-template
2 -
3 -
4 -> 这是一个基于electron的vue最基本的模板,其中前端技术栈则用到vue全家桶,axios作为http请求,而本地数据库则是nedb。现在合并了花裤衩的vue-admin中的东西,由于我司需求方面,所以侧栏的渲染比较新奇,侧栏样式是在` src/renderer/layout/components/sidebar `文件夹中,大家可以根据需求进行个性化更改,鄙人后续会将这个和花裤衩大大的同步.
5 -
6 -- 因为花裤衩大大的ELECTRON版本已经一年没有更新了,而且ELECTRON,vue,elementui,都已经迭代太多,刚好我司有这方面的需求,我就在vue-electron脚手架生成的项目基础上,将花裤衩大大的项目核心组件提取出来合并到这个项目中,在我简单的封装了axios和db.以及electron常用的信息弹窗,错误弹窗,稍后的日子中我会慢慢完善这个文档,暂时如果有人需要使用这个项目,还请多多包含,因为文档不够完善,只能用过直接看代码,在路由页面我有注释.
7 -
8 -#### 如何安装
9 -
10 -``` bash
11 -# 首先全局安装nrm
12 -npm i -g nrm
13 -# 然后使用nrm切换为淘宝源,或者你已经切换了npm的源也是可以的,强烈不建议使用cnpm如果你不想看到什么奇奇怪怪的爆红问题
14 -nrm ls
15 -nrm use taobao
16 -# 安装依赖,这里有个问题,可能ELECTRON或者postcss会由于玄学原因安装失败,此时我推荐使用cnpm安装依赖然后!删除那个node_modules包,重新npm i,这样做的原因是
17 -# ELECTRON只要下载了一次您自己没有清除缓存的话,就可以直接使用上次的安装包,这样通过cnpm安装完成之后,一定!要删除一次依赖包!一定哦!
18 -# 再使用npm安装就会使用缓存了,免去那个魔法的过程~~
19 -# 或者可以使用更加优秀的yarn。
20 -npm install or yarn install
21 -
22 -# 启动之后,会在9080端口监听
23 -# 需要重新运行一次此命令
24 -npm run dev
25 -
26 -# build命令在不同系统环境中,需要的的不一样,需要自己根据自身环境进行配置
27 -npm run build
28 -
29 -# 启动单元测试模块,但是需要注意的是,我没有更新依赖,所以很可能会导致失败
30 -npm test
31 -# 如若实在不行无法安装electron依赖,请使用
32 -npm config edit
33 -# 该命令会打开npm的配置文件,请在registry=https://registry.npm.taobao.org/这行代码后的下一行添加
34 -# electron_mirror=https://cdn.npm.taobao.org/dist/electron/ 和 sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
35 -# 然后关闭该窗口,重启命令行,删除node_modules文件夹,并重新安装依赖即可
36 -
37 -```
38 -
39 ----
40 -
41 -这个项目使用了 [electron-vue](https://github.com/SimulatedGREG/electron-vue)@[8fae476](https://github.com/SimulatedGREG/electron-vue/tree/8fae4763e9d225d3691b627e83b9e09b56f6c935) using [vue-cli](https://github.com/vuejs/vue-cli). 文档你们可以在这里看到: [这里](https://simulatedgreg.gitbooks.io/electron-vue/content/index.html).
42 -这是花裤衩大大原本的[地址](https://github.com/PanJiaChen/electron-vue-admin)
43 -
44 -# 更新日志
45 -- 剔除win打包依赖,因为太大了,将它放到码云的额外仓库中,[地址](https://gitee.com/Zh-Sky/HardToDownloadLib)
46 -- 2020年02月06日更新:提升electron版本至7.1.11
47 -- 2019年12月18日更新:例行更新了依赖,以及,我在build文件夹中加入了windows打包时候可能会用到的依赖,具体使用方法在压缩包内。
48 -- 2019年11月11日更新:祝大家光棍节钱包快乐~~,今天的更新没有什么亮点,都是针对依赖的升级,新功能的添加可能会进入一个冷淡期,我现在也没有了好点子,也要步入学习了,可能master分支以后就是稳定的更新依赖,而另一个分支的话,则是我的一些觉得大家都会遇到的一些小问题,我尽量都实现出来。
49 -- 2019年10月18日更新:不知不觉中倒也过去了一个月,啊哈哈这次更新给大家带来的是updater的示例,这依旧是个实验特性,所以在新分支中才可以使用,使用方式则是,安装依赖,
50 -运行 `npm run update:serve` 来启动这个node服务器,然后您如果想在dev的时候就看到效果需要先运行build拿到 `latest.yml`文件,然后将其更名为 `dev-app-update.yml` 放入`dist/electron`中,和`main.js`同级,然后你需要关闭或者排除webpack的自动清除插件(我已经屏蔽了,所以无需大家自己动手),然后点击软件中的检查更新即可,记住当软件正在运行的时候,是无法应用安装的,所以您需要关闭之后方可安装。这并不是一个错误!
51 -
52 -- 2019年9月18日更新:修正生产环境时,没有正确去除控制台输出的问题,双分支例行更新依赖,修正ui部分颜色问题,日后准备使用element主题功能
53 -- 2019年9月16日更新:去除easymock,直接粗暴更改登陆验证,如有需要请自行修改,例行更新新分支依赖,修正当自定义头部和系统头部互换时,布局不会做出相应变化的问题。
54 -- 2019年9月3日更新:修正了当nodejs >= 12时,出现process未定义的问题,新分支加入自定义头部,现在我们可以做出更cooool~~的效果了。
55 -- 2019年8月20日更新:添加登录拦击,实现登录功能,在dev中加入关闭ELECTRON无用控制台输出,新分支例行更新依赖,加入生产环境屏蔽f12按键。
56 -- 2019年8月13日更新:将新分支的所有依赖均更新至最新(但是我觉得,babel似乎有些东西不需要,还是保留着吧,日后测试后移除)依赖更新之后通过打包和dev测试
57 -- 2019年8月12日更新:添加一个新分支,该新分支后续将会持续保持ELECTRON(包括其对应的辅助组件)的版本处于最新状态,去除了单元测试和一些无用的文件。master分支中则是为路由添加新参数具体
58 -用途,详看路由中的注释
59 -- 2019年8月10日更新:添加各个平台的build脚本,当您直接使用build时,则会打包您当前操作系统对应的安装包,mac需要在macos上才能进行打包,而linux打包win的话,需要wine的支持,否则会失败
60 -- 2019年8月4日更新:修正原webpack配置中没有将config注入的小问题,添加了拦截实例,修改了侧栏,侧栏需要底色的请勿更新,此更新可能会导致侧栏底色无法完全覆盖(待修正),添加axios接口示例,待测。
61 -- 2019年8月1日更新:将node-sass版本更新至最新版本,尝试修正由于nodejs环境是12版导致失败(注意!此次更新可能会导致32位系统或者nodejs版本低于10的用户安装依赖报错)去除路由表中重复路由,解决控制台无端报错问题。
62 -
63 -
64 -
65 -
66 -This project was generated with [electron-vue](https://github.com/SimulatedGREG/electron-vue)@[8fae476](https://github.com/SimulatedGREG/electron-vue/tree/8fae4763e9d225d3691b627e83b9e09b56f6c935) using [vue-cli](https://github.com/vuejs/vue-cli). Documentation about the original structure can be found [here](https://simulatedgreg.gitbooks.io/electron-vue/content/index.html).
1 +# Electron-Vue-template
2 +
3 +> An electron-vue project
4 +
5 +#### Build Setup
6 +
7 +``` bash
8 +# For Chinese Developers
9 +# install nrm
10 +npm i -g nrm
11 +# Switch to Taobao Source with NRM
12 +nrm ls
13 +nrm use taobao
14 +# install dependencies
15 +npm install
16 +
17 +# serve with hot reload at localhost:9080
18 +npm run dev
19 +
20 +# build electron application for production
21 +npm run build
22 +
23 +# run unit & end-to-end tests
24 +npm test
25 +
26 +
27 +```
28 +
29 +---
30 +
31 +This project was generated with [electron-vue](https://github.com/SimulatedGREG/electron-vue)@[8fae476](https://github.com/SimulatedGREG/electron-vue/tree/8fae4763e9d225d3691b627e83b9e09b56f6c935) using [vue-cli](https://github.com/vuejs/vue-cli). Documentation about the original structure can be found [here](https://simulatedgreg.gitbooks.io/electron-vue/content/index.html).
1 -# Commented sections below can be used to run tests on the CI server
2 -# https://simulatedgreg.gitbooks.io/electron-vue/content/en/testing.html#on-the-subject-of-ci-testing
3 -version: 0.1.{build}
4 -
5 -branches:
6 - only:
7 - - master
8 -
9 -image: Visual Studio 2017
10 -platform:
11 - - x64
12 -
13 -cache:
14 - - node_modules
15 - - '%APPDATA%\npm-cache'
16 - - '%USERPROFILE%\.electron'
17 - - '%USERPROFILE%\AppData\Local\Yarn\cache'
18 -
19 -init:
20 - - git config --global core.autocrlf input
21 -
22 -install:
23 - - ps: Install-Product node 8 x64
24 - - git reset --hard HEAD
25 - - yarn
26 - - node --version
27 -
28 -build_script:
29 - #- yarn test
30 - - yarn build
31 -
32 -test: off
此文件的差异太大,无法显示。
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
17 "pack": "npm run pack:main && npm run pack:renderer", 17 "pack": "npm run pack:main && npm run pack:renderer",
18 "pack:main": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.main.config.js", 18 "pack:main": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.main.config.js",
19 "pack:renderer": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.renderer.config.js", 19 "pack:renderer": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.renderer.config.js",
20 - "update:serve": "node server/index.js", 20 + "update:serve": "node server/index.js"
21 - "e2e": "npm run pack && mocha test/e2e",
22 - "test": "npm run unit && npm run e2e",
23 - "unit": "karma start test/unit/karma.conf.js"
24 }, 21 },
25 "build": { 22 "build": {
26 - "nsis": { 23 + "extraFiles": [],
27 - "oneClick": false, 24 + "publish": [
28 - "allowToChangeInstallationDirectory": true 25 + {
29 - }, 26 + "provider": "generic",
27 + "url": "http://127.0.0.1"
28 + }
29 + ],
30 "productName": "electron-vue-admin", 30 "productName": "electron-vue-admin",
31 "appId": "org.simulatedgreg.electron-vue", 31 "appId": "org.simulatedgreg.electron-vue",
32 "directories": { 32 "directories": {
...@@ -54,7 +54,16 @@ ...@@ -54,7 +54,16 @@
54 "icon": "build/icons/icon.icns" 54 "icon": "build/icons/icon.icns"
55 }, 55 },
56 "win": { 56 "win": {
57 - "icon": "build/icons/icon.ico" 57 + "icon": "build/icons/icon.ico",
58 + "target": [
59 + {
60 + "target": "nsis",
61 + "arch": [
62 + "x64",
63 + "ia32"
64 + ]
65 + }
66 + ]
58 }, 67 },
59 "linux": { 68 "linux": {
60 "icon": "build/icons" 69 "icon": "build/icons"
...@@ -70,7 +79,6 @@ ...@@ -70,7 +79,6 @@
70 "js-cookie": "^2.2.1", 79 "js-cookie": "^2.2.1",
71 "nedb": "^1.8.0", 80 "nedb": "^1.8.0",
72 "nprogress": "^0.2.0", 81 "nprogress": "^0.2.0",
73 - "sortablejs": "^1.10.2",
74 "vue": "^2.6.11", 82 "vue": "^2.6.11",
75 "vue-electron": "^1.0.6", 83 "vue-electron": "^1.0.6",
76 "vue-router": "^3.1.6", 84 "vue-router": "^3.1.6",
...@@ -78,65 +86,65 @@ ...@@ -78,65 +86,65 @@
78 "vuex-electron": "^1.0.3" 86 "vuex-electron": "^1.0.3"
79 }, 87 },
80 "devDependencies": { 88 "devDependencies": {
89 + "@babel/core": "^7.9.0",
90 + "@babel/plugin-proposal-class-properties": "^7.8.3",
91 + "@babel/plugin-proposal-decorators": "^7.8.3",
92 + "@babel/plugin-proposal-do-expressions": "^7.8.3",
93 + "@babel/plugin-proposal-export-default-from": "^7.8.3",
94 + "@babel/plugin-proposal-export-namespace-from": "^7.8.3",
95 + "@babel/plugin-proposal-function-bind": "^7.8.3",
96 + "@babel/plugin-proposal-function-sent": "^7.8.3",
97 + "@babel/plugin-proposal-json-strings": "^7.8.3",
98 + "@babel/plugin-proposal-logical-assignment-operators": "^7.8.3",
99 + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3",
100 + "@babel/plugin-proposal-numeric-separator": "^7.8.3",
101 + "@babel/plugin-proposal-optional-chaining": "^7.9.0",
102 + "@babel/plugin-proposal-pipeline-operator": "^7.8.3",
103 + "@babel/plugin-proposal-throw-expressions": "^7.8.3",
104 + "@babel/plugin-syntax-dynamic-import": "^7.8.3",
105 + "@babel/plugin-syntax-import-meta": "^7.8.3",
106 + "@babel/plugin-transform-runtime": "^7.9.0",
107 + "@babel/polyfill": "^7.8.7",
108 + "@babel/preset-env": "^7.9.5",
109 + "@babel/register": "^7.9.0",
110 + "@babel/runtime": "^7.9.2",
81 "ajv": "^6.12.0", 111 "ajv": "^6.12.0",
82 - "babel-core": "^6.26.3", 112 + "babel-eslint": "^9.0.0",
83 - "babel-eslint": "^8.2.3", 113 + "babel-loader": "^8.1.0",
84 - "babel-loader": "^7.1.5",
85 "babel-minify-webpack-plugin": "^0.3.1", 114 "babel-minify-webpack-plugin": "^0.3.1",
86 - "babel-plugin-dynamic-import-webpack": "^1.1.0",
87 - "babel-plugin-istanbul": "^5.2.0",
88 - "babel-plugin-transform-runtime": "^6.23.0",
89 - "babel-preset-env": "^1.7.0",
90 - "babel-preset-stage-0": "^6.24.1",
91 - "babel-register": "^6.26.0",
92 - "babili-webpack-plugin": "^0.1.2",
93 "cfonts": "^2.8.1", 115 "cfonts": "^2.8.1",
94 - "chai": "^4.2.0",
95 "chalk": "^4.0.0", 116 "chalk": "^4.0.0",
96 - "clean-webpack-plugin": "^3.0.0",
97 "copy-webpack-plugin": "^5.1.1", 117 "copy-webpack-plugin": "^5.1.1",
98 "cross-env": "^7.0.2", 118 "cross-env": "^7.0.2",
99 "css-loader": "^3.5.2", 119 "css-loader": "^3.5.2",
100 "del": "^5.1.0", 120 "del": "^5.1.0",
101 - "devtron": "^1.4.0",
102 "electron": "^7.2.1", 121 "electron": "^7.2.1",
103 "electron-builder": "^22.4.1", 122 "electron-builder": "^22.4.1",
104 - "electron-debug": "^3.0.1", 123 + "electron-devtools-installer": "^2.2.4",
105 - "electron-devtools-installer": "^3.0.0", 124 + "eslint": "^6.8.0",
106 - "eslint": "^4.19.1", 125 + "eslint-config-standard": "^14.1.1",
107 - "eslint-config-standard": "^11.0.0",
108 "eslint-friendly-formatter": "^4.0.1", 126 "eslint-friendly-formatter": "^4.0.1",
109 - "eslint-loader": "^2.0.0", 127 + "eslint-loader": "^3.0.4",
110 - "eslint-plugin-html": "^4.0.3", 128 + "eslint-plugin-html": "^6.0.1",
111 "eslint-plugin-import": "^2.20.2", 129 "eslint-plugin-import": "^2.20.2",
112 - "eslint-plugin-node": "^6.0.1", 130 + "eslint-plugin-node": "^9.2.0",
113 - "eslint-plugin-promise": "^3.8.0", 131 + "eslint-plugin-promise": "^4.2.1",
114 - "eslint-plugin-standard": "^3.1.0", 132 + "eslint-plugin-standard": "^4.0.0",
115 "file-loader": "^6.0.0", 133 "file-loader": "^6.0.0",
116 "happypack": "^5.0.1", 134 "happypack": "^5.0.1",
117 "hard-source-webpack-plugin": "^0.13.1", 135 "hard-source-webpack-plugin": "^0.13.1",
118 "html-webpack-plugin": "^3.2.0", 136 "html-webpack-plugin": "^3.2.0",
119 - "inject-loader": "^4.0.1",
120 - "karma": "^2.0.2",
121 - "karma-chai": "^0.1.0",
122 - "karma-coverage": "^1.1.2",
123 - "karma-electron": "^6.0.0",
124 - "karma-mocha": "^1.3.0",
125 - "karma-sourcemap-loader": "^0.3.7",
126 - "karma-spec-reporter": "^0.0.32",
127 - "karma-webpack": "^3.0.0",
128 "mini-css-extract-plugin": "0.9.0", 137 "mini-css-extract-plugin": "0.9.0",
129 - "mocha": "^5.2.0",
130 "multispinner": "^0.2.1", 138 "multispinner": "^0.2.1",
131 "node-loader": "^0.6.0", 139 "node-loader": "^0.6.0",
132 "node-sass": "^4.13.1", 140 "node-sass": "^4.13.1",
133 "portfinder": "^1.0.25", 141 "portfinder": "^1.0.25",
134 - "require-dir": "^1.2.0",
135 "sass-loader": "^8.0.2", 142 "sass-loader": "^8.0.2",
136 - "spectron": "^3.8.0", 143 + "split2": "^3.1.1",
137 "style-loader": "^1.1.3", 144 "style-loader": "^1.1.3",
138 "svg-sprite-loader": "^4.2.5", 145 "svg-sprite-loader": "^4.2.5",
139 "terser-webpack-plugin": "^2.3.5", 146 "terser-webpack-plugin": "^2.3.5",
147 + "through2-filter": "^3.0.0",
140 "url-loader": "^4.1.0", 148 "url-loader": "^4.1.0",
141 "vue-html-loader": "^1.2.4", 149 "vue-html-loader": "^1.2.4",
142 "vue-loader": "^15.9.1", 150 "vue-loader": "^15.9.1",
......
1 +version: 6.1.1
2 +files:
3 + - url: electron-vue-admin Setup 0.0.1.exe
4 + sha512: 6higqp9mFJANIRdE59Cyl/3CgaWuHZU92EaRUfwTjXPi9b/OH/ndiLNhK8AgWB9JIz57xBwnmgXl+eT0xAjUGw==
5 + size: 46775259
6 +path: electron-vue-admin Setup 0.0.1.exe
7 +sha512: 6higqp9mFJANIRdE59Cyl/3CgaWuHZU92EaRUfwTjXPi9b/OH/ndiLNhK8AgWB9JIz57xBwnmgXl+eT0xAjUGw==
8 +releaseDate: '2019-10-18T05:21:25.707Z'
1 +const express = require('express')
2 +const path = require('path')
3 +const app = express()
4 +
5 +app.use(express.static(path.join(__dirname, './client')))
6 +
7 +const server = app.listen(25565, function () {
8 + const host = server.address().address
9 + const port = server.address().port
10 +
11 + console.log('服务启动', host, port)
12 +})
1 -{
2 - "env": {
3 - "mocha": true
4 - },
5 - "globals": {
6 - "assert": true,
7 - "expect": true,
8 - "should": true,
9 - "__static": true
10 - }
11 -}
1 -'use strict'
2 -
3 -// Set BABEL_ENV to use proper env config
4 -process.env.BABEL_ENV = 'test'
5 -
6 -// Enable use of ES6+ on required files
7 -require('babel-register')({
8 - ignore: /node_modules/
9 -})
10 -
11 -// Attach Chai APIs to global scope
12 -const { expect, should, assert } = require('chai')
13 -global.expect = expect
14 -global.should = should
15 -global.assert = assert
16 -
17 -// Require all JS files in `./specs` for Mocha to consume
18 -require('require-dir')('./specs')
1 -import utils from '../utils'
2 -
3 -describe('Launch', function () {
4 - beforeEach(utils.beforeEach)
5 - afterEach(utils.afterEach)
6 -
7 - it('shows the proper application title', function () {
8 - return this.app.client.getTitle()
9 - .then(title => {
10 - expect(title).to.equal('my-project')
11 - })
12 - })
13 -})
1 -import electron from 'electron'
2 -import { Application } from 'spectron'
3 -
4 -export default {
5 - afterEach () {
6 - this.timeout(10000)
7 -
8 - if (this.app && this.app.isRunning()) {
9 - return this.app.stop()
10 - }
11 - },
12 - beforeEach () {
13 - this.timeout(10000)
14 - this.app = new Application({
15 - path: electron,
16 - args: ['dist/electron/main.js'],
17 - startTimeout: 10000,
18 - waitTimeout: 10000
19 - })
20 -
21 - return this.app.start()
22 - }
23 -}
1 -import Vue from 'vue'
2 -Vue.config.devtools = false
3 -Vue.config.productionTip = false
4 -
5 -// require all test files (files that ends with .spec.js)
6 -const testsContext = require.context('./specs', true, /\.spec$/)
7 -testsContext.keys().forEach(testsContext)
8 -
9 -// require all src files except main.js for coverage.
10 -// you can also change this to match only the subset of files that
11 -// you want coverage for.
12 -const srcContext = require.context('../../src/renderer', true, /^\.\/(?!main(\.js)?$)/)
13 -srcContext.keys().forEach(srcContext)
1 -'use strict'
2 -
3 -const path = require('path')
4 -const merge = require('webpack-merge')
5 -const webpack = require('webpack')
6 -
7 -const baseConfig = require('../../.electron-vue/webpack.renderer.config')
8 -const projectRoot = path.resolve(__dirname, '../../src/renderer')
9 -
10 -// Set BABEL_ENV to use proper preset config
11 -process.env.BABEL_ENV = 'test'
12 -
13 -let webpackConfig = merge(baseConfig, {
14 - devtool: '#inline-source-map',
15 - plugins: [
16 - new webpack.DefinePlugin({
17 - 'process.env.NODE_ENV': '"testing"'
18 - })
19 - ]
20 -})
21 -
22 -// don't treat dependencies as externals
23 -delete webpackConfig.entry
24 -delete webpackConfig.externals
25 -delete webpackConfig.output.libraryTarget
26 -
27 -// apply vue option to apply isparta-loader on js
28 -webpackConfig.module.rules
29 - .find(rule => rule.use.loader === 'vue-loader').use.options.loaders.js = 'babel-loader'
30 -
31 -module.exports = config => {
32 - config.set({
33 - browsers: ['visibleElectron'],
34 - client: {
35 - useIframe: false
36 - },
37 - coverageReporter: {
38 - dir: './coverage',
39 - reporters: [
40 - { type: 'lcov', subdir: '.' },
41 - { type: 'text-summary' }
42 - ]
43 - },
44 - customLaunchers: {
45 - 'visibleElectron': {
46 - base: 'Electron',
47 - flags: ['--show']
48 - }
49 - },
50 - frameworks: ['mocha', 'chai'],
51 - files: ['./index.js'],
52 - preprocessors: {
53 - './index.js': ['webpack', 'sourcemap']
54 - },
55 - reporters: ['spec', 'coverage'],
56 - singleRun: true,
57 - webpack: webpackConfig,
58 - webpackMiddleware: {
59 - noInfo: true
60 - }
61 - })
62 -}
1 -import Vue from 'vue'
2 -import LandingPage from '@/components/LandingPage'
3 -
4 -describe('LandingPage.vue', () => {
5 - it('should render correct contents', () => {
6 - const vm = new Vue({
7 - el: document.createElement('div'),
8 - render: h => h(LandingPage)
9 - }).$mount()
10 -
11 - expect(vm.$el.querySelector('.title').textContent).to.contain('Welcome to your new project!')
12 - })
13 -})
1 +- iohook<br/>地址是:https://github.com/wilix-team/iohook 文档地址:https://wilix-team.github.io/iohook/ <br/>该库功能为全局监听键盘和鼠标事件,因为是由c++去实现的,所以可能需要rebuild。具体使用请看文档
2 +-
...\ No newline at end of file ...\ No newline at end of file