akfun 3.2.10 → 3.2.11

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.
package/README.md CHANGED
@@ -387,3 +387,17 @@ module.exports = {
387
387
  ...
388
388
  }
389
389
  ```
390
+
391
+ 16. 本地开启https服务
392
+ > 使用 https://localhost/index.html 访问当前项目。
393
+ ```bash
394
+ module.exports = {
395
+ ...
396
+ dev: {
397
+ ...
398
+ https: true, // 默认不开启
399
+ }
400
+ ...
401
+ }
402
+ ```
403
+ 备注:akfun使用自签名证书开启https服务,浏览器会提示安全性问题不能正常访问,需要进行如下设置,以 Chrome设置 为例:浏览器打开 Chrome://flags/#allow-insecure-localhost 后将其设置为Enabled。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akfun",
3
- "version": "3.2.10",
3
+ "version": "3.2.11",
4
4
  "description": "前端脚手架:支持Vue技术栈和react技术栈",
5
5
  "keywords": [
6
6
  "前端工程",
package/src/dev-server.js CHANGED
@@ -1,6 +1,8 @@
1
1
  const open = require('open');
2
2
  const ora = require('ora');
3
3
  const path = require('path');
4
+ const https = require('https');
5
+ const fs = require('fs');
4
6
  const express = require('express');
5
7
  const webpack = require('webpack');
6
8
  const checkVersion = require('./check-versions');
@@ -106,7 +108,9 @@ module.exports = function (akfunConfig, _consoleTag) {
106
108
 
107
109
  console.log('\n> Starting dev server...');
108
110
 
109
- devMiddleware.waitUntilValid(() => {
111
+ let isHttps = false; // 是否开启https服务
112
+
113
+ const devMiddlewareWaitUntilValid = () => {
110
114
  portfinder.getPort((err, port) => {
111
115
  if (err) {
112
116
  _reject(err);
@@ -114,7 +118,9 @@ module.exports = function (akfunConfig, _consoleTag) {
114
118
  spinner.succeed(`${consoleTag}调试模式已开启!`);
115
119
 
116
120
  process.env.PORT = port;
117
- const uri = `http://${config.dev.hostname}:${port}`;
121
+ const uri = isHttps
122
+ ? `https://${config.dev.hostname}`
123
+ : `http://${config.dev.hostname}:${port}`;
118
124
  console.log(`> Listening at ${uri}\n`);
119
125
 
120
126
  // 打印当前环境中的首个html和css地址
@@ -135,5 +141,23 @@ module.exports = function (akfunConfig, _consoleTag) {
135
141
  server = app.listen(port);
136
142
  _resolve();
137
143
  });
138
- });
144
+ };
145
+
146
+ if (config.dev.https) {
147
+ const sslOptions = {
148
+ key: fs.readFileSync(path.resolve(__dirname, './ssl/localhost.key')),
149
+ cert: fs.readFileSync(path.resolve(__dirname, './ssl/localhost.cert')),
150
+ requestCert: false,
151
+ rejectUnauthorized: false
152
+ };
153
+
154
+ var httpsServer = https.createServer(sslOptions, app);
155
+
156
+ httpsServer.listen(443, () => {
157
+ isHttps = true;
158
+ devMiddleware.waitUntilValid(devMiddlewareWaitUntilValid);
159
+ });
160
+ } else {
161
+ devMiddleware.waitUntilValid(devMiddlewareWaitUntilValid);
162
+ }
139
163
  };
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDjDCCAnQCCQD3lQP0Gtul0TANBgkqhkiG9w0BAQsFADCBhzELMAkGA1UEBhMC
3
+ emgxETAPBgNVBAgMCHdpYmV0dGVyMREwDwYDVQQHDAh3aWJldHRlcjERMA8GA1UE
4
+ CgwId2liZXR0ZXIxDjAMBgNVBAsMBWFrZnVuMQ4wDAYDVQQDDAVha2Z1bjEfMB0G
5
+ CSqGSIb3DQEJARYQMzY1NTMzMDkzQHFxLmNvbTAeFw0yMjEwMDIxNjI2NDlaFw0y
6
+ MjExMDExNjI2NDlaMIGHMQswCQYDVQQGEwJ6aDERMA8GA1UECAwId2liZXR0ZXIx
7
+ ETAPBgNVBAcMCHdpYmV0dGVyMREwDwYDVQQKDAh3aWJldHRlcjEOMAwGA1UECwwF
8
+ YWtmdW4xDjAMBgNVBAMMBWFrZnVuMR8wHQYJKoZIhvcNAQkBFhAzNjU1MzMwOTNA
9
+ cXEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqbbSdHPvmurP
10
+ 7E3NmZRlqHJW+iAstgbKzlcOFUDNloNgT9SjhraJR343CSwXmGV+0dnGIoCeuSvL
11
+ erYIEQgDkgT4Mpnet1e0M8R332b78Xfw+aA/QTwx2DhwZcKOQ8gv6rPpYDjPpDWv
12
+ qliKarNIrEVBJiJVY9tuNDYoQBhKrkXQteTWSeU4p5SoMQwfra7NBp7wF/DqnSlz
13
+ U7+0LK6Tj4uOCYbV++1+5UQk7RyRBJVJlLC7DQT9LAyrcebnqdhalq8BjCa6idT5
14
+ d/ctEOnVrOwxL+/rQwhewbTUI986QsJXmmg3+r5WZU9lUJyL3vxXxffmT/rH0bJk
15
+ CC73GTOL1wIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQB856BWi1SC/c2jj17X2+T6
16
+ TzahZsXeoBkLKjR2EgUrrUIFTCS9SXslgOV5JG28zEn+pnh4ZW0KBls1ql2I31gy
17
+ vI/G55Y6bleNay9mYD5/7iclEXYb8olm6ipqS1cnRABpgDrI7Rh4T/sH6khXVgDR
18
+ xunLqZNEDrE92V3eEOAet0jnHTd2L+9Idz9TlPs3dW82J1bzBTld0Im53MWX64rm
19
+ a6axhRYrTzemSglL4Yjld0J8VVU/8ZE7IOZkxmcLB7UKXL2u9dkAKGV7iJsi0or5
20
+ X6yionKTPld5ud18MhZ/JDVWAMFISG2JlyXW8v1HEwkDo7PeIK05zOuDmSjgPiZz
21
+ -----END CERTIFICATE-----
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpttJ0c++a6s/s
3
+ Tc2ZlGWoclb6ICy2BsrOVw4VQM2Wg2BP1KOGtolHfjcJLBeYZX7R2cYigJ65K8t6
4
+ tggRCAOSBPgymd63V7QzxHffZvvxd/D5oD9BPDHYOHBlwo5DyC/qs+lgOM+kNa+q
5
+ WIpqs0isRUEmIlVj2240NihAGEquRdC15NZJ5TinlKgxDB+trs0GnvAX8OqdKXNT
6
+ v7QsrpOPi44JhtX77X7lRCTtHJEElUmUsLsNBP0sDKtx5uep2FqWrwGMJrqJ1Pl3
7
+ 9y0Q6dWs7DEv7+tDCF7BtNQj3zpCwleaaDf6vlZlT2VQnIve/FfF9+ZP+sfRsmQI
8
+ LvcZM4vXAgMBAAECggEAJ9qU5V/sXnbRyO4kX/JnRP1Ey4wOs9g4e+gZmIgVP0ku
9
+ rtCCbjojVrSe+/psuA7tjx4S1ztZCqbsK67fihBVtk6QcmGL2YYw/Q8gD0hB1dyS
10
+ rCwjbpBSLDJkwqDDg8tY5UbGgSAWMruguuH77z6WzE2fFPNvFfoLkRs+rH6H2xCM
11
+ GzlDMl71oym17LU+3Ie4fjoYpwRdFJBLQuCDbaatlVRpE01hX3T1JRvrU6Mmis8E
12
+ DBo0bKm0pIbeWcl9A4pbHy6GdClXO1UaI7uBNfWXyIc1V4Z5KHh+ZlPJVsnf4v70
13
+ aorUoIKnduYs6KAT1akko/O3jSQ2yziCff9UXpMDQQKBgQDVswXsD6ie9jwhhl82
14
+ Xf83GSDLsFeDDo3rFyCZtWgRKr1GTnoKQ0DO0w55H01OY3du+dARPS5QHf+MCku/
15
+ JIKFjdaYE1ZsATnPsCX9hiZ6QDVJPp2VPX3HkKhrR8198fLDriGng9pctxr15uy5
16
+ 62fgyIuydwyHEYNSdMCpn3nyZwKBgQDLTuZCoKrZ/5qUMzB2LFhfTUu53GM1cIKV
17
+ dUgAcoQrGPQ7jylULJv6IBkentOmEbQ+9P9T9w9PbxHmEoqk09vtB1qp5rxbGQ0/
18
+ ylFz6tytuoM+D+58f1e1c7+ZOOas1NbGCJD3V1SwXU1bPShG9ez8pNs6L/bv4n7A
19
+ Svmw4ggVEQKBgEiYCx/45cgyT5T356o5XjRiZeCr496SeCVvctSkaljCkw+qIw0P
20
+ cZmQ2u7Mcl95rJ3XYRYqGWx/9EqnSLoC9g/WchqxHv+Lnw7tgMpR4wpOe4uJKNEE
21
+ 1ZCQlJX1C1qIcXaF1crpIKm0TgVQ0AQMcvpKRiJ3DJtpmJnPLY+xrCRrAoGAGD5d
22
+ WN6d4QcI4NlF0yGwnBS0jgJI1kuHVtk4b804E4eTQDLvI7l6FBaVyD/6TxhXXRaM
23
+ B/AzJC7DfKMDY2pcFGTHG/GGznorSUsP8Xm1PQY7tj/iGXh59gpKc7QEVeG/hrfo
24
+ yYXhdHJ70gB1+BhFXU8vUT38/VgN81I9eilJ+3ECgYBQyDsoVvRvpmlWp9VQJs5v
25
+ DC8rufxGGbyiJpDxhtiE0gHKC+2DxU5IBG9hkQpjN4qqwR9HMwPeOvfs5cg0Loaf
26
+ IM3hwzVGQ39PZIY5grjmA5zPtdpuoCDX8DY/XhFmpmLThP3x5hGvTV6PXw31HOXX
27
+ OGT4LBgcYXktU99IC7x5pw==
28
+ -----END PRIVATE KEY-----