expressa 2.0.20 → 2.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/.circleci/config.yml +21 -21
  2. package/.eslintrc.json +29 -29
  3. package/.vscode/launch.json +19 -0
  4. package/LICENSE +21 -21
  5. package/README.md +137 -137
  6. package/auth/index.js +76 -76
  7. package/auth/jwt.js +31 -31
  8. package/controllers/collections.js +260 -260
  9. package/controllers/install.js +105 -105
  10. package/controllers/status.js +43 -43
  11. package/controllers/users.js +52 -52
  12. package/cypress/fixtures/example.json +4 -4
  13. package/cypress/integration/0_install_spec.js +8 -8
  14. package/cypress/integration/custom_collections.js +30 -30
  15. package/cypress/integration/home.js +9 -9
  16. package/cypress/integration/settings.js +34 -34
  17. package/cypress/integration/users.js +61 -61
  18. package/cypress/plugins/index.js +17 -17
  19. package/cypress/support/commands.js +69 -69
  20. package/cypress/support/index.js +20 -20
  21. package/cypress/support/util.js +10 -10
  22. package/cypress.config.js +18 -18
  23. package/cypress.json +4 -4
  24. package/db/cached.js +44 -40
  25. package/db/file.js +131 -112
  26. package/db/memory.js +92 -79
  27. package/db/mongo.js +93 -86
  28. package/db/postgres.js +100 -93
  29. package/doc/authentication.md +38 -38
  30. package/doc/automatic-fields.md +12 -12
  31. package/doc/blogexample.md +16 -16
  32. package/doc/custom-endpoints.md +20 -20
  33. package/doc/database.md +23 -23
  34. package/doc/development.md +33 -33
  35. package/doc/listeners.md +103 -103
  36. package/doc/modules.md +8 -8
  37. package/doc/permissions.md +14 -14
  38. package/doc/relationships.md +65 -65
  39. package/doc/testing.md +47 -47
  40. package/doc/uploading-files.md +53 -53
  41. package/index.js +297 -297
  42. package/listeners.js +65 -65
  43. package/listeners_collection_permissions.js +29 -29
  44. package/listeners_users.js +96 -96
  45. package/listeners_validation.js +43 -43
  46. package/middleware/logging.js +30 -30
  47. package/middleware/permissions.js +41 -41
  48. package/modules/access_keys/access_keys.js +32 -32
  49. package/modules/admin/.babelrc +19 -19
  50. package/modules/admin/.editorconfig +14 -14
  51. package/modules/admin/.eslintignore +5 -5
  52. package/modules/admin/.eslintrc.js +197 -197
  53. package/modules/admin/.postcssrc.js +10 -10
  54. package/modules/admin/.travis.yml +5 -5
  55. package/modules/admin/LICENSE +21 -21
  56. package/modules/admin/README.md +88 -88
  57. package/modules/admin/build/build.js +46 -46
  58. package/modules/admin/build/check-versions.js +64 -64
  59. package/modules/admin/build/utils.js +109 -109
  60. package/modules/admin/build/vue-loader.conf.js +5 -5
  61. package/modules/admin/build/webpack.base.conf.js +112 -112
  62. package/modules/admin/build/webpack.dev.conf.js +95 -95
  63. package/modules/admin/build/webpack.prod.conf.js +112 -112
  64. package/modules/admin/config/dev.env.js +8 -8
  65. package/modules/admin/config/index.js +86 -86
  66. package/modules/admin/config/prod.env.js +5 -5
  67. package/modules/admin/dist/css/136.1055b646.css +69 -0
  68. package/modules/admin/dist/css/136.1055b646.css.gz +0 -0
  69. package/modules/admin/dist/css/{430.8c9b0482.css → 165.e83d8cfe.css} +4 -4
  70. package/modules/admin/dist/css/165.e83d8cfe.css.gz +0 -0
  71. package/modules/admin/dist/css/220.e946bda7.css.gz +0 -0
  72. package/modules/admin/dist/css/{197.7a90435e.css → 236.e66ce8d8.css} +4 -4
  73. package/modules/admin/dist/css/236.e66ce8d8.css.gz +0 -0
  74. package/modules/admin/dist/css/338.1fd9d57c.css.gz +0 -0
  75. package/modules/admin/dist/css/{566.7a90435e.css → 566.e66ce8d8.css} +4 -4
  76. package/modules/admin/dist/css/566.e66ce8d8.css.gz +0 -0
  77. package/modules/admin/dist/css/76.46fe6799.css +66 -0
  78. package/modules/admin/dist/css/76.46fe6799.css.gz +0 -0
  79. package/modules/admin/dist/css/807.f450521e.css +1 -0
  80. package/modules/admin/dist/css/807.f450521e.css.gz +0 -0
  81. package/modules/admin/dist/css/{750.4086915d.css.gz → 913.4086915d.css.gz} +0 -0
  82. package/modules/admin/dist/css/{app.eba5f5e2.css → app.1c3232a3.css} +25 -25
  83. package/modules/admin/dist/css/app.1c3232a3.css.gz +0 -0
  84. package/modules/admin/dist/index.html +1 -1
  85. package/modules/admin/dist/static/js/115.108d0dd5.js +1 -0
  86. package/modules/admin/dist/static/js/115.108d0dd5.js.gz +0 -0
  87. package/modules/admin/dist/static/js/136.1f9f4cb0.js +1 -0
  88. package/modules/admin/dist/static/js/136.1f9f4cb0.js.gz +0 -0
  89. package/modules/admin/dist/static/js/165.b3d51941.js +1 -0
  90. package/modules/admin/dist/static/js/165.b3d51941.js.gz +0 -0
  91. package/modules/admin/dist/static/js/220.02b2cd49.js +1 -0
  92. package/modules/admin/dist/static/js/220.02b2cd49.js.gz +0 -0
  93. package/modules/admin/dist/static/js/236.98c79868.js +1 -0
  94. package/modules/admin/dist/static/js/236.98c79868.js.gz +0 -0
  95. package/modules/admin/dist/static/js/338.4ba49501.js +1 -0
  96. package/modules/admin/dist/static/js/338.4ba49501.js.gz +0 -0
  97. package/modules/admin/dist/static/js/381.a05421de.js +1 -0
  98. package/modules/admin/dist/static/js/381.a05421de.js.gz +0 -0
  99. package/modules/admin/dist/static/js/412.0914ff23.js +1 -0
  100. package/modules/admin/dist/static/js/412.0914ff23.js.gz +0 -0
  101. package/modules/admin/dist/static/js/533.507df4cb.js +1 -0
  102. package/modules/admin/dist/static/js/533.507df4cb.js.gz +0 -0
  103. package/modules/admin/dist/static/js/556.d7586b89.js +1 -0
  104. package/modules/admin/dist/static/js/556.d7586b89.js.gz +0 -0
  105. package/modules/admin/dist/static/js/76.811d0e96.js +1 -0
  106. package/modules/admin/dist/static/js/76.811d0e96.js.gz +0 -0
  107. package/modules/admin/dist/static/js/807.8b7455a7.js +1 -0
  108. package/modules/admin/dist/static/js/807.8b7455a7.js.gz +0 -0
  109. package/modules/admin/dist/static/js/913.8b376386.js +1 -0
  110. package/modules/admin/dist/static/js/913.8b376386.js.gz +0 -0
  111. package/modules/admin/dist/static/js/app.834abee4.js +2 -0
  112. package/modules/admin/dist/static/js/{app.ea86ae11.js.LICENSE.txt → app.834abee4.js.LICENSE.txt} +3 -3
  113. package/modules/admin/dist/static/js/app.834abee4.js.LICENSE.txt.gz +0 -0
  114. package/modules/admin/dist/static/js/app.834abee4.js.gz +0 -0
  115. package/modules/admin/index.html +16 -16
  116. package/modules/admin/package.json +102 -101
  117. package/modules/admin/src/App.vue +11 -11
  118. package/modules/admin/src/api/login.js +26 -26
  119. package/modules/admin/src/api/table.js +9 -9
  120. package/modules/admin/src/components/Breadcrumb/index.vue +79 -79
  121. package/modules/admin/src/components/Hamburger/index.vue +62 -62
  122. package/modules/admin/src/components/JSONEditor.vue +206 -180
  123. package/modules/admin/src/components/SvgIcon/index.vue +43 -43
  124. package/modules/admin/src/icons/index.js +9 -9
  125. package/modules/admin/src/icons/svgo.yml +22 -22
  126. package/modules/admin/src/main.js +42 -42
  127. package/modules/admin/src/permission.js +49 -49
  128. package/modules/admin/src/router/index.js +200 -200
  129. package/modules/admin/src/store/getters.js +11 -11
  130. package/modules/admin/src/store/index.js +17 -17
  131. package/modules/admin/src/store/modules/app.js +43 -43
  132. package/modules/admin/src/store/modules/user.js +104 -104
  133. package/modules/admin/src/styles/element-ui.scss +29 -29
  134. package/modules/admin/src/styles/index.scss +78 -78
  135. package/modules/admin/src/styles/mixin.scss +27 -27
  136. package/modules/admin/src/styles/sidebar.scss +133 -133
  137. package/modules/admin/src/styles/transition.scss +46 -46
  138. package/modules/admin/src/styles/variables.scss +4 -4
  139. package/modules/admin/src/utils/auth.js +15 -15
  140. package/modules/admin/src/utils/index.js +74 -74
  141. package/modules/admin/src/utils/request.js +47 -48
  142. package/modules/admin/src/utils/validate.js +31 -31
  143. package/modules/admin/src/views/404.vue +235 -235
  144. package/modules/admin/src/views/Dev.vue +33 -33
  145. package/modules/admin/src/views/EditDocument.vue +121 -121
  146. package/modules/admin/src/views/Endpoints.vue +279 -279
  147. package/modules/admin/src/views/Home.vue +84 -84
  148. package/modules/admin/src/views/Install.vue +79 -79
  149. package/modules/admin/src/views/ListDocuments.vue +72 -72
  150. package/modules/admin/src/views/ListDocuments2.vue +467 -467
  151. package/modules/admin/src/views/ManageListeners.vue +67 -67
  152. package/modules/admin/src/views/ManageMiddleware.vue +43 -43
  153. package/modules/admin/src/views/ManagePermissions.vue +75 -75
  154. package/modules/admin/src/views/ViewRequest.vue +77 -77
  155. package/modules/admin/src/views/form/index.vue +91 -91
  156. package/modules/admin/src/views/layout/Layout.vue +69 -69
  157. package/modules/admin/src/views/layout/components/AppMain.vue +41 -41
  158. package/modules/admin/src/views/layout/components/Navbar.vue +97 -97
  159. package/modules/admin/src/views/layout/components/Sidebar/Item.vue +29 -29
  160. package/modules/admin/src/views/layout/components/Sidebar/Link.vue +39 -39
  161. package/modules/admin/src/views/layout/components/Sidebar/SidebarItem.vue +103 -103
  162. package/modules/admin/src/views/layout/components/Sidebar/index.vue +62 -62
  163. package/modules/admin/src/views/layout/components/index.js +3 -3
  164. package/modules/admin/src/views/layout/mixin/ResizeHandler.js +41 -41
  165. package/modules/admin/src/views/login/index.vue +195 -195
  166. package/modules/admin/src/views/tree/index.vue +77 -77
  167. package/modules/collections/collections.js +39 -39
  168. package/modules/core/core.js +197 -197
  169. package/modules/logging/logging.js +88 -88
  170. package/modules/permissions/permissions.js +106 -106
  171. package/package.json +59 -59
  172. package/scripts/expressa +12 -12
  173. package/scripts/run_cypress_tests.sh +35 -35
  174. package/scripts/run_db_tests.sh +8 -8
  175. package/test/0-install.js +96 -96
  176. package/test/collections.js +431 -431
  177. package/test/collections.querying.js +288 -288
  178. package/test/db.js +258 -258
  179. package/test/db.strings.js +73 -73
  180. package/test/db.updating.js +186 -144
  181. package/test/logging.js +29 -29
  182. package/test/test.js +93 -93
  183. package/test/testserver.js +30 -17
  184. package/test/testutils.js +136 -136
  185. package/test/users.js +425 -425
  186. package/util.js +522 -522
  187. package/modules/admin/dist/css/197.7a90435e.css.gz +0 -0
  188. package/modules/admin/dist/css/430.8c9b0482.css.gz +0 -0
  189. package/modules/admin/dist/css/451.c6646d20.css +0 -1
  190. package/modules/admin/dist/css/451.c6646d20.css.gz +0 -0
  191. package/modules/admin/dist/css/566.7a90435e.css.gz +0 -0
  192. package/modules/admin/dist/css/569.f7d5c7d5.css +0 -37
  193. package/modules/admin/dist/css/569.f7d5c7d5.css.gz +0 -0
  194. package/modules/admin/dist/css/572.74d8e965.css +0 -34
  195. package/modules/admin/dist/css/572.74d8e965.css.gz +0 -0
  196. package/modules/admin/dist/css/651.e946bda7.css.gz +0 -0
  197. package/modules/admin/dist/css/950.1fd9d57c.css.gz +0 -0
  198. package/modules/admin/dist/css/app.eba5f5e2.css.gz +0 -0
  199. package/modules/admin/dist/static/js/197.e511d91e.js +0 -1
  200. package/modules/admin/dist/static/js/197.e511d91e.js.gz +0 -0
  201. package/modules/admin/dist/static/js/430.b3941f30.js +0 -1
  202. package/modules/admin/dist/static/js/430.b3941f30.js.gz +0 -0
  203. package/modules/admin/dist/static/js/451.645974a8.js +0 -1
  204. package/modules/admin/dist/static/js/451.645974a8.js.gz +0 -0
  205. package/modules/admin/dist/static/js/460.962d5bc0.js +0 -1
  206. package/modules/admin/dist/static/js/460.962d5bc0.js.gz +0 -0
  207. package/modules/admin/dist/static/js/550.f27feb23.js +0 -1
  208. package/modules/admin/dist/static/js/550.f27feb23.js.gz +0 -0
  209. package/modules/admin/dist/static/js/556.1e08866a.js +0 -1
  210. package/modules/admin/dist/static/js/556.1e08866a.js.gz +0 -0
  211. package/modules/admin/dist/static/js/569.0fecfbee.js +0 -1
  212. package/modules/admin/dist/static/js/569.0fecfbee.js.gz +0 -0
  213. package/modules/admin/dist/static/js/572.13392e1d.js +0 -1
  214. package/modules/admin/dist/static/js/572.13392e1d.js.gz +0 -0
  215. package/modules/admin/dist/static/js/603.7b34a650.js +0 -1
  216. package/modules/admin/dist/static/js/603.7b34a650.js.gz +0 -0
  217. package/modules/admin/dist/static/js/651.564b24b6.js +0 -1
  218. package/modules/admin/dist/static/js/651.564b24b6.js.gz +0 -0
  219. package/modules/admin/dist/static/js/653.02ec1098.js +0 -1
  220. package/modules/admin/dist/static/js/653.02ec1098.js.gz +0 -0
  221. package/modules/admin/dist/static/js/750.50c950da.js +0 -1
  222. package/modules/admin/dist/static/js/750.50c950da.js.gz +0 -0
  223. package/modules/admin/dist/static/js/950.d4ff0a18.js +0 -1
  224. package/modules/admin/dist/static/js/950.d4ff0a18.js.gz +0 -0
  225. package/modules/admin/dist/static/js/app.ea86ae11.js +0 -2
  226. package/modules/admin/dist/static/js/app.ea86ae11.js.LICENSE.txt.gz +0 -0
  227. package/modules/admin/dist/static/js/app.ea86ae11.js.gz +0 -0
  228. /package/modules/admin/dist/css/{651.e946bda7.css → 220.e946bda7.css} +0 -0
  229. /package/modules/admin/dist/css/{950.1fd9d57c.css → 338.1fd9d57c.css} +0 -0
  230. /package/modules/admin/dist/css/{750.4086915d.css → 913.4086915d.css} +0 -0
@@ -1,88 +1,88 @@
1
- # vue-admin-template
2
-
3
- > A minimal vue admin template with Element UI & axios & iconfont & permission control & lint
4
-
5
- **Live demo:** http://panjiachen.github.io/vue-admin-template
6
-
7
- [中文文档](https://github.com/PanJiaChen/vue-admin-template/blob/master/README-zh.md)
8
-
9
- ## Build Setup
10
-
11
- ```bash
12
- # Clone project
13
- git clone https://github.com/PanJiaChen/vue-admin-template.git
14
-
15
- # Install dependencies
16
- npm install
17
-
18
- # Serve with hot reload at localhost:9528
19
- npm run dev
20
-
21
- # Build for production with minification
22
- npm run build
23
-
24
- # Build for production and view the bundle analyzer report
25
- npm run build --report
26
- ```
27
-
28
- ## Demo
29
-
30
- ![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
31
-
32
- ## Extra
33
-
34
- If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
35
-
36
- This project is based on `webpack4` development. If you want to use `webpack3` development, please use this branch [webpack3](https://github.com/PanJiaChen/vue-admin-template/tree/webpack3)
37
-
38
- For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
39
-
40
- ## Related Project
41
-
42
- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
43
-
44
- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
45
-
46
- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
47
-
48
- ### Element-Ui using cdn tutorial
49
-
50
- First find `index.html`([root directory](https://github.com/PanJiaChen/vue-admin-template/blob/element-ui-cdn/index.html))
51
-
52
- Import css and js of `Element`, and then import vue. Because `Element` is vue-dependent, vue must be import before it.
53
-
54
- Then find [webpack.base.conf.js](https://github.com/PanJiaChen/vue-admin-template/blob/element-ui-cdn/build/webpack.base.conf.js)
55
- Add `externals` to make webpack not package vue and element.
56
-
57
- ```
58
- externals: {
59
- vue: 'Vue',
60
- 'element-ui':'ELEMENT'
61
- }
62
- ```
63
-
64
- Finally there is a small detail to pay attention to that if you import vue in global, you don't need to manually `Vue.use(Vuex)`, it will be automatically mounted, see
65
- [issue](https://github.com/vuejs/vuex/issues/731)
66
-
67
- And you can use `npm run build --report` to see the effect
68
-
69
- Pictured:
70
- ![demo](https://panjiachen.github.io/images/element-cdn.png)
71
-
72
- **[Detailed code](https://github.com/PanJiaChen/vue-admin-template/commit/746aff560932704ae821f82f10b8b2a9681d5177)**
73
-
74
- **[Branch](https://github.com/PanJiaChen/vue-admin-template/tree/element-ui-cdn)**
75
-
76
- ## Browsers support
77
-
78
- Modern browsers and Internet Explorer 10+.
79
-
80
- | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
81
- | --------- | --------- | --------- | --------- |
82
- | IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
83
-
84
- ## License
85
-
86
- [MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
87
-
88
- Copyright (c) 2017-present PanJiaChen
1
+ # vue-admin-template
2
+
3
+ > A minimal vue admin template with Element UI & axios & iconfont & permission control & lint
4
+
5
+ **Live demo:** http://panjiachen.github.io/vue-admin-template
6
+
7
+ [中文文档](https://github.com/PanJiaChen/vue-admin-template/blob/master/README-zh.md)
8
+
9
+ ## Build Setup
10
+
11
+ ```bash
12
+ # Clone project
13
+ git clone https://github.com/PanJiaChen/vue-admin-template.git
14
+
15
+ # Install dependencies
16
+ npm install
17
+
18
+ # Serve with hot reload at localhost:9528
19
+ npm run dev
20
+
21
+ # Build for production with minification
22
+ npm run build
23
+
24
+ # Build for production and view the bundle analyzer report
25
+ npm run build --report
26
+ ```
27
+
28
+ ## Demo
29
+
30
+ ![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
31
+
32
+ ## Extra
33
+
34
+ If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
35
+
36
+ This project is based on `webpack4` development. If you want to use `webpack3` development, please use this branch [webpack3](https://github.com/PanJiaChen/vue-admin-template/tree/webpack3)
37
+
38
+ For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
39
+
40
+ ## Related Project
41
+
42
+ [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
43
+
44
+ [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
45
+
46
+ [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
47
+
48
+ ### Element-Ui using cdn tutorial
49
+
50
+ First find `index.html`([root directory](https://github.com/PanJiaChen/vue-admin-template/blob/element-ui-cdn/index.html))
51
+
52
+ Import css and js of `Element`, and then import vue. Because `Element` is vue-dependent, vue must be import before it.
53
+
54
+ Then find [webpack.base.conf.js](https://github.com/PanJiaChen/vue-admin-template/blob/element-ui-cdn/build/webpack.base.conf.js)
55
+ Add `externals` to make webpack not package vue and element.
56
+
57
+ ```
58
+ externals: {
59
+ vue: 'Vue',
60
+ 'element-ui':'ELEMENT'
61
+ }
62
+ ```
63
+
64
+ Finally there is a small detail to pay attention to that if you import vue in global, you don't need to manually `Vue.use(Vuex)`, it will be automatically mounted, see
65
+ [issue](https://github.com/vuejs/vuex/issues/731)
66
+
67
+ And you can use `npm run build --report` to see the effect
68
+
69
+ Pictured:
70
+ ![demo](https://panjiachen.github.io/images/element-cdn.png)
71
+
72
+ **[Detailed code](https://github.com/PanJiaChen/vue-admin-template/commit/746aff560932704ae821f82f10b8b2a9681d5177)**
73
+
74
+ **[Branch](https://github.com/PanJiaChen/vue-admin-template/tree/element-ui-cdn)**
75
+
76
+ ## Browsers support
77
+
78
+ Modern browsers and Internet Explorer 10+.
79
+
80
+ | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
81
+ | --------- | --------- | --------- | --------- |
82
+ | IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
83
+
84
+ ## License
85
+
86
+ [MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
87
+
88
+ Copyright (c) 2017-present PanJiaChen
@@ -1,46 +1,46 @@
1
- 'use strict'
2
- require('./check-versions')()
3
-
4
- process.env.NODE_ENV = 'production'
5
-
6
- const ora = require('ora')
7
- const rm = require('rimraf')
8
- const path = require('path')
9
- const chalk = require('chalk')
10
- const webpack = require('webpack')
11
- const config = require('../config')
12
- const webpackConfig = require('./webpack.prod.conf')
13
-
14
- const spinner = ora('building for production...')
15
- spinner.start()
16
-
17
- // Clean the entire dist directory to ensure no stale top-level hashed files linger
18
- rm(path.join(config.build.assetsRoot), err => {
19
- if (err) throw err
20
- webpack(webpackConfig, (err, stats) => {
21
- spinner.stop()
22
- if (err) throw err
23
- process.stdout.write(
24
- stats.toString({
25
- colors: true,
26
- modules: false,
27
- children: false,
28
- chunks: false,
29
- chunkModules: false
30
- }) + '\n\n'
31
- )
32
-
33
- if (stats.hasErrors()) {
34
- console.log(chalk.red(' Build failed with errors.\n'))
35
- process.exit(1)
36
- }
37
-
38
- console.log(chalk.cyan(' Build complete.\n'))
39
- console.log(
40
- chalk.yellow(
41
- ' Tip: built files are meant to be served over an HTTP server.\n' +
42
- " Opening index.html over file:// won't work.\n"
43
- )
44
- )
45
- })
46
- })
1
+ 'use strict'
2
+ require('./check-versions')()
3
+
4
+ process.env.NODE_ENV = 'production'
5
+
6
+ const ora = require('ora')
7
+ const rm = require('rimraf')
8
+ const path = require('path')
9
+ const chalk = require('chalk')
10
+ const webpack = require('webpack')
11
+ const config = require('../config')
12
+ const webpackConfig = require('./webpack.prod.conf')
13
+
14
+ const spinner = ora('building for production...')
15
+ spinner.start()
16
+
17
+ // Clean the entire dist directory to ensure no stale top-level hashed files linger
18
+ rm(path.join(config.build.assetsRoot), err => {
19
+ if (err) throw err
20
+ webpack(webpackConfig, (err, stats) => {
21
+ spinner.stop()
22
+ if (err) throw err
23
+ process.stdout.write(
24
+ stats.toString({
25
+ colors: true,
26
+ modules: false,
27
+ children: false,
28
+ chunks: false,
29
+ chunkModules: false
30
+ }) + '\n\n'
31
+ )
32
+
33
+ if (stats.hasErrors()) {
34
+ console.log(chalk.red(' Build failed with errors.\n'))
35
+ process.exit(1)
36
+ }
37
+
38
+ console.log(chalk.cyan(' Build complete.\n'))
39
+ console.log(
40
+ chalk.yellow(
41
+ ' Tip: built files are meant to be served over an HTTP server.\n' +
42
+ " Opening index.html over file:// won't work.\n"
43
+ )
44
+ )
45
+ })
46
+ })
@@ -1,64 +1,64 @@
1
- 'use strict'
2
- const chalk = require('chalk')
3
- const semver = require('semver')
4
- const packageConfig = require('../package.json')
5
- const shell = require('shelljs')
6
-
7
- function exec(cmd) {
8
- return require('child_process')
9
- .execSync(cmd)
10
- .toString()
11
- .trim()
12
- }
13
-
14
- const versionRequirements = [
15
- {
16
- name: 'node',
17
- currentVersion: semver.clean(process.version),
18
- versionRequirement: packageConfig.engines.node
19
- }
20
- ]
21
-
22
- if (shell.which('npm')) {
23
- versionRequirements.push({
24
- name: 'npm',
25
- currentVersion: exec('npm --version'),
26
- versionRequirement: packageConfig.engines.npm
27
- })
28
- }
29
-
30
- module.exports = function() {
31
- const warnings = []
32
-
33
- for (let i = 0; i < versionRequirements.length; i++) {
34
- const mod = versionRequirements[i]
35
-
36
- if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
37
- warnings.push(
38
- mod.name +
39
- ': ' +
40
- chalk.red(mod.currentVersion) +
41
- ' should be ' +
42
- chalk.green(mod.versionRequirement)
43
- )
44
- }
45
- }
46
-
47
- if (warnings.length) {
48
- console.log('')
49
- console.log(
50
- chalk.yellow(
51
- 'To use this template, you must update following to modules:'
52
- )
53
- )
54
- console.log()
55
-
56
- for (let i = 0; i < warnings.length; i++) {
57
- const warning = warnings[i]
58
- console.log(' ' + warning)
59
- }
60
-
61
- console.log()
62
- process.exit(1)
63
- }
64
- }
1
+ 'use strict'
2
+ const chalk = require('chalk')
3
+ const semver = require('semver')
4
+ const packageConfig = require('../package.json')
5
+ const shell = require('shelljs')
6
+
7
+ function exec(cmd) {
8
+ return require('child_process')
9
+ .execSync(cmd)
10
+ .toString()
11
+ .trim()
12
+ }
13
+
14
+ const versionRequirements = [
15
+ {
16
+ name: 'node',
17
+ currentVersion: semver.clean(process.version),
18
+ versionRequirement: packageConfig.engines.node
19
+ }
20
+ ]
21
+
22
+ if (shell.which('npm')) {
23
+ versionRequirements.push({
24
+ name: 'npm',
25
+ currentVersion: exec('npm --version'),
26
+ versionRequirement: packageConfig.engines.npm
27
+ })
28
+ }
29
+
30
+ module.exports = function() {
31
+ const warnings = []
32
+
33
+ for (let i = 0; i < versionRequirements.length; i++) {
34
+ const mod = versionRequirements[i]
35
+
36
+ if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
37
+ warnings.push(
38
+ mod.name +
39
+ ': ' +
40
+ chalk.red(mod.currentVersion) +
41
+ ' should be ' +
42
+ chalk.green(mod.versionRequirement)
43
+ )
44
+ }
45
+ }
46
+
47
+ if (warnings.length) {
48
+ console.log('')
49
+ console.log(
50
+ chalk.yellow(
51
+ 'To use this template, you must update following to modules:'
52
+ )
53
+ )
54
+ console.log()
55
+
56
+ for (let i = 0; i < warnings.length; i++) {
57
+ const warning = warnings[i]
58
+ console.log(' ' + warning)
59
+ }
60
+
61
+ console.log()
62
+ process.exit(1)
63
+ }
64
+ }
@@ -1,109 +1,109 @@
1
- 'use strict'
2
- const path = require('path')
3
- const config = require('../config')
4
- const MiniCssExtractPlugin = require('mini-css-extract-plugin')
5
- const packageConfig = require('../package.json')
6
-
7
- exports.assetsPath = function(_path) {
8
- const assetsSubDirectory =
9
- process.env.NODE_ENV === 'production'
10
- ? config.build.assetsSubDirectory
11
- : config.dev.assetsSubDirectory
12
-
13
- return path.posix.join(assetsSubDirectory, _path)
14
- }
15
-
16
- exports.cssLoaders = function(options) {
17
- options = options || {}
18
-
19
- const cssLoader = {
20
- loader: 'css-loader',
21
- options: {
22
- sourceMap: options.sourceMap,
23
- esModule: false
24
- }
25
- }
26
-
27
- const postcssLoader = {
28
- loader: 'postcss-loader',
29
- options: {
30
- sourceMap: options.sourceMap
31
- }
32
- }
33
-
34
- // generate loader string to be used with extract text plugin
35
- function generateLoaders(loader, loaderOptions) {
36
- const loaders = []
37
-
38
- // Extract CSS when that option is specified
39
- // (which is the case during production build)
40
- if (options.extract) {
41
- loaders.push(MiniCssExtractPlugin.loader)
42
- } else {
43
- loaders.push('vue-style-loader')
44
- }
45
-
46
- loaders.push(cssLoader)
47
-
48
- if (options.usePostCSS) {
49
- loaders.push(postcssLoader)
50
- }
51
-
52
- if (loader) {
53
- loaders.push({
54
- loader: loader + '-loader',
55
- options: Object.assign({}, loaderOptions, {
56
- sourceMap: options.sourceMap
57
- })
58
- })
59
- }
60
-
61
- return loaders
62
- }
63
- // https://vue-loader.vuejs.org/en/configurations/extract-css.html
64
- return {
65
- css: generateLoaders(),
66
- postcss: generateLoaders(),
67
- less: generateLoaders('less'),
68
- sass: generateLoaders('sass', {
69
- indentedSyntax: true
70
- }),
71
- scss: generateLoaders('sass'),
72
- stylus: generateLoaders('stylus'),
73
- styl: generateLoaders('stylus')
74
- }
75
- }
76
-
77
- // Generate loaders for standalone style files (outside of .vue)
78
- exports.styleLoaders = function(options) {
79
- const output = []
80
- const loaders = exports.cssLoaders(options)
81
-
82
- for (const extension in loaders) {
83
- const loader = loaders[extension]
84
- output.push({
85
- test: new RegExp('\\.' + extension + '$'),
86
- use: loader
87
- })
88
- }
89
-
90
- return output
91
- }
92
-
93
- exports.createNotifierCallback = () => {
94
- const notifier = require('node-notifier')
95
-
96
- return (severity, errors) => {
97
- if (severity !== 'error') return
98
-
99
- const error = errors[0]
100
- const filename = error.file && error.file.split('!').pop()
101
-
102
- notifier.notify({
103
- title: packageConfig.name,
104
- message: severity + ': ' + error.name,
105
- subtitle: filename || '',
106
- icon: path.join(__dirname, 'logo.png')
107
- })
108
- }
109
- }
1
+ 'use strict'
2
+ const path = require('path')
3
+ const config = require('../config')
4
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
5
+ const packageConfig = require('../package.json')
6
+
7
+ exports.assetsPath = function(_path) {
8
+ const assetsSubDirectory =
9
+ process.env.NODE_ENV === 'production'
10
+ ? config.build.assetsSubDirectory
11
+ : config.dev.assetsSubDirectory
12
+
13
+ return path.posix.join(assetsSubDirectory, _path)
14
+ }
15
+
16
+ exports.cssLoaders = function(options) {
17
+ options = options || {}
18
+
19
+ const cssLoader = {
20
+ loader: 'css-loader',
21
+ options: {
22
+ sourceMap: options.sourceMap,
23
+ esModule: false
24
+ }
25
+ }
26
+
27
+ const postcssLoader = {
28
+ loader: 'postcss-loader',
29
+ options: {
30
+ sourceMap: options.sourceMap
31
+ }
32
+ }
33
+
34
+ // generate loader string to be used with extract text plugin
35
+ function generateLoaders(loader, loaderOptions) {
36
+ const loaders = []
37
+
38
+ // Extract CSS when that option is specified
39
+ // (which is the case during production build)
40
+ if (options.extract) {
41
+ loaders.push(MiniCssExtractPlugin.loader)
42
+ } else {
43
+ loaders.push('vue-style-loader')
44
+ }
45
+
46
+ loaders.push(cssLoader)
47
+
48
+ if (options.usePostCSS) {
49
+ loaders.push(postcssLoader)
50
+ }
51
+
52
+ if (loader) {
53
+ loaders.push({
54
+ loader: loader + '-loader',
55
+ options: Object.assign({}, loaderOptions, {
56
+ sourceMap: options.sourceMap
57
+ })
58
+ })
59
+ }
60
+
61
+ return loaders
62
+ }
63
+ // https://vue-loader.vuejs.org/en/configurations/extract-css.html
64
+ return {
65
+ css: generateLoaders(),
66
+ postcss: generateLoaders(),
67
+ less: generateLoaders('less'),
68
+ sass: generateLoaders('sass', {
69
+ indentedSyntax: true
70
+ }),
71
+ scss: generateLoaders('sass'),
72
+ stylus: generateLoaders('stylus'),
73
+ styl: generateLoaders('stylus')
74
+ }
75
+ }
76
+
77
+ // Generate loaders for standalone style files (outside of .vue)
78
+ exports.styleLoaders = function(options) {
79
+ const output = []
80
+ const loaders = exports.cssLoaders(options)
81
+
82
+ for (const extension in loaders) {
83
+ const loader = loaders[extension]
84
+ output.push({
85
+ test: new RegExp('\\.' + extension + '$'),
86
+ use: loader
87
+ })
88
+ }
89
+
90
+ return output
91
+ }
92
+
93
+ exports.createNotifierCallback = () => {
94
+ const notifier = require('node-notifier')
95
+
96
+ return (severity, errors) => {
97
+ if (severity !== 'error') return
98
+
99
+ const error = errors[0]
100
+ const filename = error.file && error.file.split('!').pop()
101
+
102
+ notifier.notify({
103
+ title: packageConfig.name,
104
+ message: severity + ': ' + error.name,
105
+ subtitle: filename || '',
106
+ icon: path.join(__dirname, 'logo.png')
107
+ })
108
+ }
109
+ }
@@ -1,5 +1,5 @@
1
- 'use strict'
2
-
3
- module.exports = {
4
- //You can set the vue-loader configuration by yourself.
5
- }
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ //You can set the vue-loader configuration by yourself.
5
+ }