zoukankan      html  css  js  c++  java
  • webpack打包提交代码

    ①在终端运行 npm run build在文件夹中会出现一个 dist 文件夹
    终端会出现
    或者 运行npm run build --report 会在浏览器打开显示包目录的分析图(主要是告诉你那个包体积比较大)
     
     
    在build下的webpack.prod.conf.js文件中添加一个与module、output 平级的externals: {},// 外部导入包的方式
    // 把项目中,一些体积比较大的包,抽离为 外部加载的方式
      externals: {
        // 包名: '构造函数'
        vue: 'Vue', // vue
        'vue-router': 'VueRouter', // 路由
        axios: 'axios',
        lodash: '_',
        nprogress: 'NProgress',
        echarts: 'echarts'
      },

    CDN(镜像加速)就是网速特别开的一台服务器

    在 https://www.bootcdn.cn/

    打包时劲量不要使用本地的包要从 https://www.bootcdn.cn/ 网站上找(runtime.min.js之类的包)
    比如[下列代码都是放到index.html 中的]:(这样引入相当于按需导入)
     <link href=https://cdn.bootcss.com/nprogress/0.2.0/nprogress.min.css rel=stylesheet>
     <script src=https://cdn.bootcss.com/nprogress/0.2.0/nprogress.min.js> </script>
     <script src=https://cdn.bootcss.com/vue/2.5.16/vue.runtime.min.js> </script>
     <script src=https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js> </script>
     <script src=https://cdn.bootcss.com/axios/0.18.0/axios.min.js> </script>
     <script src=https://cdn.bootcss.com/lodash.js/4.17.10/lodash.min.js> </script>
     <script src=https://cdn.bootcss.com/echarts/4.1.0/echarts.min.js> </script>

     上述完成后 在把 dist 复制出来 创建一个文件夹把dist 放入 在文件夹中在创建一个 app.js

    在这个文件中的终端 输入 npm init -y  会生成一个 package.json文件
    在输入 npm i express -S 会生成一个 package-lock.json
    在 app.js 文件中 app.use(express.static('./dist')  // 托管dist文件
    // 导入express 模块
    const express = require('express')
    // 创建express的服务器实例
    const app = express()
    // 把 dist 挂载到 app上
    app.use(express.static('./dist'))
    // 3000是端口号 app.listen(3000,function(){ console.log('Express server running at http://127.0.0.1:3000') })
    在输入 node ./app.js
     
    开启GZip压缩(要在原项目中使用) http://www.expressjs.com.cn/guide/using-middleware.html
    首先要 npm install compression
    然后 
    //导入Gzip压缩的中间件
    const compression = require('compression')
    // 注册中间件,启用Gzip压缩
    app.use(compression())
    但是压缩后体积还是大 可以为web服务器开启GZip压缩(Apache、IIS、Tomcat、Node服务器)
    如果不启用GZip压缩,那么,服务器上文件的真实大小,,就是网络传输中,真实传输的大小
    如果服务器,启用GZip压缩,则 文件在网络中,传输的时候,会被压缩,经过Gzip的压缩之后,文件体积会大约减小到之前的四分之一
     
     
    如果项目需要在减小体积 把element-ui按需导入(用到那个导入那个组件) 让后在逐一挂载到vue实例上就可以了[要在原目录中]
    按需导入后记得要把  Vue.use(elementUI) 这个注释掉
     
    路由的懒加载https://router.vuejs.org/zh/guide/advanced/lazy-loading.html (要在原项目中)
    使用路由懒加载 需要 先 
    npm install --save-dev @babel/plugin-syntax-dynamic-import

    安装好后需要在 .babelrc文件中的plugins对象中添加 "@babel/plugin-syntax-dynamic-import" 

    /* webpackChunkName: "group-foo" */ 不要删除
    //      组件名                                     组名          导入的组件
    const login = () => import(/* webpackChunkName: "login_home" */ '@/components/home')
    // 组名不同就不会打包成一组
     发布到服务器 在目录中创建一个cert文件夹
    首先要导入证书 .pem  和 .key 格式的
    在在app.js中 导入包
    // 导入 express 模块
    const express = require('express')
    const http = require('http')
    const https = require('https')
    const fs = require('fs')
    // 创建 express 的服务器实例
    const app = express()
    //导入Gzip压缩的中间件
    const compression = require('compression')
    
    // https 证书相关的文件配置
    const options = {
      key: fs.readFileSync('./cert/private.key'),
      cert: fs.readFileSync('./cert/full_chain.pem')
    }
    
    // 启用 服务器的 代理模式
    app.enable('trust proxy')
    app.use('*', (req, res, next) => {
      // 如果请求的协议,是 https 的协议,直接放行
      if (req.secure) {
        return next()
      }
      // 如果请求的不是https的协议,则重定向
      res.redirect(`https://${req.hostname}${req.url}`)
    })
    
    // 注册中间件,启用Gzip压缩
    app.use(compression())
    
    app.use(express.static('./dist'))
    
    // 调用 app.listen 方法,指定端口号并启动web服务器
    // app.listen(80, function() {
    //   console.log('Express server running at http://127.0.0.1:80')
    // })
    
    // 启用http服务器
    http.createServer(app).listen(80, () => {
      console.log('Express server running at http://127.0.0.1:80')
    })
    
    // 启用 https 服务器
    https.createServer(options, app).listen(443, () => {
      console.log('Express server running at https://127.0.0.1:443')
    })
     
    pm2 ls 查看服务器运行
    pm2 - delete -文件名称
    cd 指定目录
    pm2 start./ app.js--name 自定义名称
     
     
     
     
  • 相关阅读:
    【2012百度之星资格赛】G:聊天就是Repeat
    使用testNG进行并发性能测试
    关于处理高并发,防止库存超卖的问题
    关于java内存溢出的异常处理
    关于微服务架构
    关于MySQL绿色版的安装
    G点营销看来也不是@z营销的专利啊
    matlab+中文字体设计,有搞头没有? 有搞头
    字王字型系列命名草案
    国外字体设计师也是蛮重视数学的
  • 原文地址:https://www.cnblogs.com/maxiag/p/11785335.html
Copyright © 2011-2022 走看看