Browse Source

👌 优化打包配置

晓晓晓晓丶vv 4 years ago
parent
commit
aa82390b9b
4 changed files with 40 additions and 22 deletions
  1. 1 1
      .env.production
  2. 15 18
      prod.config.js
  3. 20 2
      public/index.html
  4. 4 1
      vue.config.js

+ 1 - 1
.env.production

@@ -1,4 +1,4 @@
 NODE_ENV = production
 VUE_APP_BASE_URL = '/'
-VUE_APP_PUB_URL = './'
+VUE_APP_PUB_URL = 'https://firemanage.oss-cn-hangzhou.aliyuncs.com/FE-resource/'
 PROXY_API_URL = 'https://promoter.58duke.com/'

+ 15 - 18
prod.config.js

@@ -51,20 +51,7 @@ const optimization = {
   },
 };
 
-// * 资源配置
-const cdns = {
-  dev: {},
-  build: {
-    css: [],
-    js: [
-      "https://cdn-novel.iycdm.com/static/vue.min.js",
-      "https://cdn-novel.iycdm.com/static/vuex.min.js",
-      "https://cdn-novel.iycdm.com/static/vue-router.min.js",
-      "https://cdn-novel.iycdm.com/static/vue-lazyload.js",
-      "https://cdn-novel.iycdm.com/static/axios.min.js",
-    ],
-  },
-};
+const ossCDN = "https://firemanage.oss-cn-hangzhou.aliyuncs.com/FE-resource";
 
 // * oss config
 const ossConfig = {
@@ -72,11 +59,22 @@ const ossConfig = {
   region: "oss-cn-hangzhou",
   ak: "LTAIowrHAk6HHxb8",
   sk: "vhrLQEn1WW8WQphOPBfcDE8zwx7nel",
-  bucket: "zhuishuyun",
+  bucket: "firemanage",
 };
 
-const ossCDN = "https://cdn-novel.iycdm.com/";
-
+// * 资源配置
+const cdns = {
+  dev: {},
+  build: {
+    css: [],
+    js: [
+      `${ossCDN}/library/vue.next.min.js`,
+      `${ossCDN}/library/vuex.next.min.js`,
+      `${ossCDN}/library/vue-router.next.min.js`,
+      `${ossCDN}/library/axios.min.js`,
+    ],
+  },
+};
 // * 打包后资源上传oss
 const uploadAssetsToOSS = (config) => {
   config
@@ -138,6 +136,5 @@ module.exports = {
   externals,
   optimization,
   cdns,
-  ossCDN,
   assetsDir,
 };

+ 20 - 2
public/index.html

@@ -3,8 +3,26 @@
   <head>
     <meta charset="utf-8" />
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
-    <title><%= htmlWebpackPlugin.options.title %></title>
+    <meta
+      name="viewport"
+      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
+    />
+    <link
+      rel="icon"
+      type="image/png"
+      href="data:image/png;base64,iVBORw0KGgo="
+    />
+    <!-- 使用CDN加速的CSS文件,配置在vue.config.js下 -->
+    <% for (var i in
+    htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>
+    <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="stylesheet" />
+    <% } %>
+    <!-- 使用CDN加速的JS文件,配置在vue.config.js下 -->
+    <% for (var i in
+    htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.js) { %>
+    <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
+    <% } %>
+    <title>精准投放后台</title>
   </head>
   <body>
     <div id="app"></div>

+ 4 - 1
vue.config.js

@@ -50,10 +50,13 @@ module.exports = {
     config.plugins.delete("preload");
     if (process.env.NODE_ENV === "production") {
       // config.entry("index").add("babel-polyfill");
+      prodConfig.codeUglify(config);
+      prodConfig.uploadAssetsToOSS(config);
+      // prodConfig.assetsGzip(config);
       config.plugin("html").tap((args) => {
         // 加上属性引号
         args[0].minify.removeAttributeQuotes = false;
-        // args[0].cdn = cdns.build;
+        args[0].cdn = prodConfig.cdns.build;
         return args;
       });
     }