expressa 2.0.21 → 2.0.23

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 (222) 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 +8 -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/{197.7a90435e.css → 197.e66ce8d8.css} +4 -4
  68. package/modules/admin/dist/css/197.e66ce8d8.css.gz +0 -0
  69. package/modules/admin/dist/css/{430.8c9b0482.css → 430.e83d8cfe.css} +4 -4
  70. package/modules/admin/dist/css/430.e83d8cfe.css.gz +0 -0
  71. package/modules/admin/dist/css/451.c6646d20.css.gz +0 -0
  72. package/modules/admin/dist/css/{566.7a90435e.css → 566.e66ce8d8.css} +4 -4
  73. package/modules/admin/dist/css/566.e66ce8d8.css.gz +0 -0
  74. package/modules/admin/dist/css/569.db9a10c2.css +213 -0
  75. package/modules/admin/dist/css/569.db9a10c2.css.gz +0 -0
  76. package/modules/admin/dist/css/572.513a323e.css +210 -0
  77. package/modules/admin/dist/css/572.513a323e.css.gz +0 -0
  78. package/modules/admin/dist/css/651.e946bda7.css.gz +0 -0
  79. package/modules/admin/dist/css/750.4086915d.css.gz +0 -0
  80. package/modules/admin/dist/css/950.1fd9d57c.css.gz +0 -0
  81. package/modules/admin/dist/css/{app.eba5f5e2.css → app.1c3232a3.css} +25 -25
  82. package/modules/admin/dist/css/app.1c3232a3.css.gz +0 -0
  83. package/modules/admin/dist/index.html +1 -1
  84. package/modules/admin/dist/static/js/197.36982650.js +1 -0
  85. package/modules/admin/dist/static/js/197.36982650.js.gz +0 -0
  86. package/modules/admin/dist/static/js/311.25e842dc.js +1 -0
  87. package/modules/admin/dist/static/js/311.25e842dc.js.gz +0 -0
  88. package/modules/admin/dist/static/js/430.53aea612.js +1 -0
  89. package/modules/admin/dist/static/js/430.53aea612.js.gz +0 -0
  90. package/modules/admin/dist/static/js/451.9f6dcdb1.js +1 -0
  91. package/modules/admin/dist/static/js/451.9f6dcdb1.js.gz +0 -0
  92. package/modules/admin/dist/static/js/460.351dad91.js +1 -0
  93. package/modules/admin/dist/static/js/460.351dad91.js.gz +0 -0
  94. package/modules/admin/dist/static/js/550.87e54b29.js +1 -0
  95. package/modules/admin/dist/static/js/550.87e54b29.js.gz +0 -0
  96. package/modules/admin/dist/static/js/569.52dba3a7.js +1 -0
  97. package/modules/admin/dist/static/js/569.52dba3a7.js.gz +0 -0
  98. package/modules/admin/dist/static/js/572.296cfd3b.js +1 -0
  99. package/modules/admin/dist/static/js/572.296cfd3b.js.gz +0 -0
  100. package/modules/admin/dist/static/js/603.98d5f5d9.js +1 -0
  101. package/modules/admin/dist/static/js/603.98d5f5d9.js.gz +0 -0
  102. package/modules/admin/dist/static/js/651.6dca6fbe.js +1 -0
  103. package/modules/admin/dist/static/js/651.6dca6fbe.js.gz +0 -0
  104. package/modules/admin/dist/static/js/653.0dff78dc.js +1 -0
  105. package/modules/admin/dist/static/js/653.0dff78dc.js.gz +0 -0
  106. package/modules/admin/dist/static/js/750.6877a6b8.js +1 -0
  107. package/modules/admin/dist/static/js/750.6877a6b8.js.gz +0 -0
  108. package/modules/admin/dist/static/js/950.4f40455a.js +1 -0
  109. package/modules/admin/dist/static/js/950.4f40455a.js.gz +0 -0
  110. package/modules/admin/dist/static/js/app.2dd732d9.js +2 -0
  111. package/modules/admin/dist/static/js/{app.083328f8.js.LICENSE.txt → app.2dd732d9.js.LICENSE.txt} +0 -2
  112. package/modules/admin/dist/static/js/app.2dd732d9.js.LICENSE.txt.gz +0 -0
  113. package/modules/admin/dist/static/js/app.2dd732d9.js.gz +0 -0
  114. package/modules/admin/index.html +16 -16
  115. package/modules/admin/package.json +101 -101
  116. package/modules/admin/src/App.vue +11 -11
  117. package/modules/admin/src/api/login.js +26 -26
  118. package/modules/admin/src/api/table.js +9 -9
  119. package/modules/admin/src/components/Breadcrumb/index.vue +79 -79
  120. package/modules/admin/src/components/Hamburger/index.vue +62 -62
  121. package/modules/admin/src/components/JSONEditor.vue +206 -180
  122. package/modules/admin/src/components/SvgIcon/index.vue +43 -43
  123. package/modules/admin/src/icons/index.js +9 -9
  124. package/modules/admin/src/icons/svgo.yml +22 -22
  125. package/modules/admin/src/main.js +42 -42
  126. package/modules/admin/src/permission.js +49 -49
  127. package/modules/admin/src/router/index.js +200 -200
  128. package/modules/admin/src/store/getters.js +11 -11
  129. package/modules/admin/src/store/index.js +17 -17
  130. package/modules/admin/src/store/modules/app.js +43 -43
  131. package/modules/admin/src/store/modules/user.js +104 -104
  132. package/modules/admin/src/styles/element-ui.scss +29 -29
  133. package/modules/admin/src/styles/index.scss +78 -78
  134. package/modules/admin/src/styles/mixin.scss +27 -27
  135. package/modules/admin/src/styles/sidebar.scss +133 -133
  136. package/modules/admin/src/styles/transition.scss +46 -46
  137. package/modules/admin/src/styles/variables.scss +4 -4
  138. package/modules/admin/src/utils/auth.js +15 -15
  139. package/modules/admin/src/utils/index.js +74 -74
  140. package/modules/admin/src/utils/request.js +47 -47
  141. package/modules/admin/src/utils/validate.js +31 -31
  142. package/modules/admin/src/views/404.vue +235 -235
  143. package/modules/admin/src/views/Dev.vue +33 -33
  144. package/modules/admin/src/views/EditDocument.vue +121 -121
  145. package/modules/admin/src/views/Endpoints.vue +279 -279
  146. package/modules/admin/src/views/Home.vue +84 -84
  147. package/modules/admin/src/views/Install.vue +79 -79
  148. package/modules/admin/src/views/ListDocuments.vue +72 -72
  149. package/modules/admin/src/views/ListDocuments2.vue +467 -467
  150. package/modules/admin/src/views/ManageListeners.vue +67 -67
  151. package/modules/admin/src/views/ManageMiddleware.vue +43 -43
  152. package/modules/admin/src/views/ManagePermissions.vue +75 -75
  153. package/modules/admin/src/views/ViewRequest.vue +77 -77
  154. package/modules/admin/src/views/form/index.vue +91 -91
  155. package/modules/admin/src/views/layout/Layout.vue +69 -69
  156. package/modules/admin/src/views/layout/components/AppMain.vue +41 -41
  157. package/modules/admin/src/views/layout/components/Navbar.vue +97 -97
  158. package/modules/admin/src/views/layout/components/Sidebar/Item.vue +29 -29
  159. package/modules/admin/src/views/layout/components/Sidebar/Link.vue +39 -39
  160. package/modules/admin/src/views/layout/components/Sidebar/SidebarItem.vue +103 -103
  161. package/modules/admin/src/views/layout/components/Sidebar/index.vue +62 -62
  162. package/modules/admin/src/views/layout/components/index.js +3 -3
  163. package/modules/admin/src/views/layout/mixin/ResizeHandler.js +41 -41
  164. package/modules/admin/src/views/login/index.vue +195 -195
  165. package/modules/admin/src/views/tree/index.vue +77 -77
  166. package/modules/collections/collections.js +39 -39
  167. package/modules/core/core.js +197 -197
  168. package/modules/logging/logging.js +88 -88
  169. package/modules/permissions/permissions.js +106 -106
  170. package/package.json +59 -59
  171. package/scripts/expressa +12 -12
  172. package/scripts/run_cypress_tests.sh +35 -35
  173. package/scripts/run_db_tests.sh +8 -8
  174. package/test/0-install.js +96 -96
  175. package/test/collections.js +431 -431
  176. package/test/collections.querying.js +288 -288
  177. package/test/db.js +258 -258
  178. package/test/db.strings.js +73 -73
  179. package/test/db.updating.js +186 -144
  180. package/test/logging.js +29 -29
  181. package/test/test.js +93 -93
  182. package/test/testserver.js +30 -30
  183. package/test/testutils.js +136 -136
  184. package/test/users.js +425 -425
  185. package/util.js +522 -522
  186. package/modules/admin/dist/css/197.7a90435e.css.gz +0 -0
  187. package/modules/admin/dist/css/430.8c9b0482.css.gz +0 -0
  188. package/modules/admin/dist/css/566.7a90435e.css.gz +0 -0
  189. package/modules/admin/dist/css/569.f7d5c7d5.css +0 -37
  190. package/modules/admin/dist/css/569.f7d5c7d5.css.gz +0 -0
  191. package/modules/admin/dist/css/572.74d8e965.css +0 -34
  192. package/modules/admin/dist/css/572.74d8e965.css.gz +0 -0
  193. package/modules/admin/dist/css/app.eba5f5e2.css.gz +0 -0
  194. package/modules/admin/dist/static/js/197.e511d91e.js +0 -1
  195. package/modules/admin/dist/static/js/197.e511d91e.js.gz +0 -0
  196. package/modules/admin/dist/static/js/430.b3941f30.js +0 -1
  197. package/modules/admin/dist/static/js/430.b3941f30.js.gz +0 -0
  198. package/modules/admin/dist/static/js/451.645974a8.js +0 -1
  199. package/modules/admin/dist/static/js/451.645974a8.js.gz +0 -0
  200. package/modules/admin/dist/static/js/460.962d5bc0.js +0 -1
  201. package/modules/admin/dist/static/js/460.962d5bc0.js.gz +0 -0
  202. package/modules/admin/dist/static/js/550.f27feb23.js +0 -1
  203. package/modules/admin/dist/static/js/550.f27feb23.js.gz +0 -0
  204. package/modules/admin/dist/static/js/556.1e08866a.js +0 -1
  205. package/modules/admin/dist/static/js/556.1e08866a.js.gz +0 -0
  206. package/modules/admin/dist/static/js/569.0fecfbee.js +0 -1
  207. package/modules/admin/dist/static/js/569.0fecfbee.js.gz +0 -0
  208. package/modules/admin/dist/static/js/572.13392e1d.js +0 -1
  209. package/modules/admin/dist/static/js/572.13392e1d.js.gz +0 -0
  210. package/modules/admin/dist/static/js/603.7b34a650.js +0 -1
  211. package/modules/admin/dist/static/js/603.7b34a650.js.gz +0 -0
  212. package/modules/admin/dist/static/js/651.564b24b6.js +0 -1
  213. package/modules/admin/dist/static/js/651.564b24b6.js.gz +0 -0
  214. package/modules/admin/dist/static/js/653.02ec1098.js +0 -1
  215. package/modules/admin/dist/static/js/653.02ec1098.js.gz +0 -0
  216. package/modules/admin/dist/static/js/750.50c950da.js +0 -1
  217. package/modules/admin/dist/static/js/750.50c950da.js.gz +0 -0
  218. package/modules/admin/dist/static/js/950.d4ff0a18.js +0 -1
  219. package/modules/admin/dist/static/js/950.d4ff0a18.js.gz +0 -0
  220. package/modules/admin/dist/static/js/app.083328f8.js +0 -2
  221. package/modules/admin/dist/static/js/app.083328f8.js.LICENSE.txt.gz +0 -0
  222. package/modules/admin/dist/static/js/app.083328f8.js.gz +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
+ }