手写一个服务器代码将 《vue电商后台管理系统》部署上去 上线、打包

2023-11-05

我将在博文中全程以cnpm作为代码格式,为了好复制,它啊!你要知道node安装包自带npm,npm下载cnpm才可以使用cnpm

今日目标:

 1.上线vue电商后台管理项目

 2.手写搭建服务器并挂载 (node)

 3.打包优化 完成上线

9a69fede8b2044a79dd834e3e48f20b4.png前期回顾    89a5d93bcce94f7cbe42539567637cb3.gif 

终于有人能把 服务器 说的这么直白了_活在风浪里的博客-CSDN博客十多万字超详细的电商后台管理系统Vue项目,从零开始,包括后面的打包上线优化,挂载到服务器上如何操作,看后定会收获颇多 !https://blog.csdn.net/m0_57904695/article/details/122938095

介绍:

这是我写的后台管理项目,今日就是操作它(15万字详细教程)我给它贴上来,如果只看打包部署上线,亲往下快进

结合 服务器+后端+前端,完成 vue项目 后台管理系统_活在风浪里的博客-CSDN博客亲测可用 gitee 网址 包括php包,后端node.js代码,前端源码 以及文档接口说明 + 结合 服务器+后端+前端,完成 vue项目 后台管理系统https://blog.csdn.net/m0_57904695/article/details/122648464?spm=1001.2014.3001.5502再此之前我写过一篇部署nginx,从写代码达到手机App极为细致,看后定收获颇多!主要是vant、手机端

一步一步,一步 从代码到,打包成为手机App,上传至nginx服务器 (Vue项目)_活在风浪里的博客-CSDN博客一步一步,一步 从代码到,打包成为手机App,上传至ngnix服务器 (Vue项目)https://blog.csdn.net/m0_57904695/article/details/122500485?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164506544716780265430357%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164506544716780265430357&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-122500485.nonecase&utm_term=%E4%B8%8A%E7%BA%BF&spm=1018.2226.3001.4450


首次打包查看包体积 (7.09MB)

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

 vue.config.js

  • 没有就新建一个,vue.config.js解释:就是修改webpack 的默认配置项

重要!! 1-17步骤通过ctrl+f 搜索步骤,在代码注释里有下载依赖的命令,要下载依赖的,下面是代码,必须下载依赖才能用

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

// 1-17步骤
// 3 加载path模块和定义resolve方法, 把相对路径转换成绝对路径
const path = require('path')
const resolve = dir => path.join(__dirname, dir)

// 5 安装去除log包  cnpm install uglifyjs-webpack-plugin --save-dev
//6引入去除log文件
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const isProduction = process.env.NODE_ENV === 'production';

// 13 对资源文件进行压缩引入
const CompressionWebpackPlugin = require('compression-webpack-plugin')
    // 8 使用externals设置排除项 
const externals = {
        //这里如果写的不对,dist/index打开会报xx未定义, 
        // 模块名称和作用域名(对应的是window里面的全局变量名)
        // 模块名称和作用域名一定要写对,不然不是报未定义就是打包cdn引入不进去 !!!
        vue: 'Vue',
        "element-ui": "element",
        'vue-router': 'VueRouter',
        axios: 'axios',
        lodash: '_',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'VueQuillEditor',

    }
    // CDN外链,会插入到index.html中
const cdn = {
    // 开发环境
    dev: {
        css: [],
        js: []
    },
    // 生产环境
    build: {
        // element在vue下,顺序不对也会报错
        css: [
            "https://cdn.staticfile.org/element-ui/2.8.2/theme-chalk/index.css",
            'https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css',
            'https://cdn.staticfile.org/quill/1.3.4/quill.core.min.css',
            'https://cdn.staticfile.org/quill/1.3.4/quill.snow.min.css',
            'https://cdn.staticfile.org/quill/1.3.4/quill.bubble.min.css',
        ],
        js: [
            "https://cdn.staticfile.org/vue/2.5.22/vue.min.js",
            "https://cdn.staticfile.org/element-ui/2.8.2/index.js",
            "https://cdn.staticfile.org/vue-router/3.0.1/vue-router.min.js",
            "https://cdn.staticfile.org/axios/0.18.0/axios.min.js",
            "https://cdn.staticfile.org/lodash.js/4.17.11/lodash.min.js",
            "https://cdn.staticfile.org/echarts/4.1.0/echarts.min.js",
            "https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js",
            "https://cdn.staticfile.org/quill/1.3.4/quill.min.js",
            "https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.4/dist/vue-quill-editor.js",
        ]
    }
}
module.exports = {
    // 1
    publicPath: './', // 静态资源路径(默认/,打包后会白屏)
    // 2
    productionSourceMap: false, //错误映射,关闭会减少一半体积


    devServer: {
        hotOnly: true, // 热更新
        open: true
    },
    // 4 添加别名
    chainWebpack: config => {
        config.resolve.alias
            .set('@', resolve('src'))
            .set('assets', resolve('src/assets'))
            .set('api', resolve('src/api'))
            .set('views', resolve('src/views'))
            .set('components', resolve('src/components'))
            // 10  添加CDN参数到htmlWebpackPlugin配置中
            // 11  在pubilc/index 中配置  我放在最下面了
            // 12 cnpm i compression-webpack-plugin -D  对资源文件进行压缩
        config.plugin('html').tap(args => {
                if (isProduction) {
                    args[0].cdn = cdn.build
                } else {
                    args[0].cdn = cdn.dev
                }
                return args
            })
            // 16 配置图片压缩
        config.module
            .rule('images')
            .use('image-webpack-loader')
            .loader('image-webpack-loader')
            .options({
                bypassOnDebug: true
            })
            .end()
    },
    // 7 使用去除log
    configureWebpack: config => {
        const plugins = [];
        if (isProduction) {
            // 9 配置cdn
            config.externals = externals
                // 配置cdn

            plugins.push(
                    new UglifyJsPlugin({
                        uglifyOptions: {
                            output: {
                                comments: false, // 去掉注释
                            },
                            warnings: false,
                            compress: {
                                drop_console: true,
                                drop_debugger: false,
                                pure_funcs: ['console.log'] //移除console
                            }
                        }
                    }),
                    // 14 对资源文件进行压缩引入进行配置:
                    new CompressionWebpackPlugin({
                        filename: '[path].gz[query]',
                        algorithm: 'gzip',
                        // test: /\.js$|\.html$|\.json$|\.css/,
                        test: /\.js$|\.json$|\.css/,
                        threshold: 10240, // 只有大小大于该值的资源会被处理
                        minRatio: 0.8, // 只有压缩率小于这个值的资源才会被处理
                        // deleteOriginalAssets: true // 删除原文件
                    })
                    // 15 安装图片压缩 cnpm install image-webpack-loader --save-dev 容易安装不上
                    // 若安装过 image-webpack-loader 先卸载 !!!
                    // npm 安装的npm 则npm 移除
                    // npm uninstall image - webpack - loader
                    //如果yarn安装的,则yarn 移除
                    // yarn remove image - webpack - loader

                ),
                // 17公共代码抽离
                config.optimization = {
                    splitChunks: { // 分割代码块
                        cacheGroups: {
                            vendor: { //第三方库抽离
                                chunks: 'all',
                                test: /node_modules/,
                                name: 'vendor',
                                minChunks: 1, //在分割之前,这个代码块最小应该被引用的次数
                                maxInitialRequests: 5,
                                minSize: 0, //大于0个字节
                                priority: 100 //权重
                            },
                            common: { //公用模块抽离
                                chunks: 'all',
                                test: /[\\/]src[\\/]js[\\/]/,
                                name: 'common',
                                minChunks: 2, // 在分割之前, 这个代码块最小应该被引用的次数
                                maxInitialRequests: 5,
                                minSize: 0, //大于0个字节
                                priority: 60
                            },
                            styles: { //样式抽离
                                name: 'styles',
                                test: /\.(sa|sc|c)ss$/,
                                chunks: 'all',
                                enforce: true
                            },
                            runtimeChunk: {
                                name: 'manifest'
                            }
                        }
                    }
                }
        }
    },
}

重要!!!  将以上代码赋值到 vue.config.js文件中,根据自己的项目去配置cdn

图例:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

可以根据自己项目所需的cdn链接自己搜索配置 BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务

本项目所需的cdn


    <!-- nprogress 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css" />
    <!-- 富文本编辑器 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.core.min.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.snow.min.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.bubble.min.css" />
    <!-- element-ui 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.8.2/theme-chalk/index.css" />

    <script src="https://cdn.staticfile.org/vue/2.5.22/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/vue-router/3.0.1/vue-router.min.js"></script>
    <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
    <script src="https://cdn.staticfile.org/lodash.js/4.17.11/lodash.min.js"></script>
    <script src="https://cdn.staticfile.org/echarts/4.1.0/echarts.min.js"></script>
    <script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script>
    <!-- 富文本编辑器的 js 文件 -->
    <script src="https://cdn.staticfile.org/quill/1.3.4/quill.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.4/dist/vue-quill-editor.js"></script>

    <!-- element-ui 的 js 文件 -->
    <script src="https://cdn.staticfile.org/element-ui/2.8.2/index.js"></script>

cdn配置好后,在public/index.html添加如下代码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

 <!-- 使用CDN的CSS文件 -->
    <% for (var i in
        htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>
        <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="preload" as="style" />
        <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>
                <% } %>

需要配置环境变量,上线网址,运行npm run build 就是生产环境上线环境了,所以需要配置上线的网址, 下面第三张图

配置环境变量: 参考Vue配置多环境变量,原来是这么回事啊_活在风浪里的博客-CSDN博客https://blog.csdn.net/m0_57904695/article/details/122269218

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

可以通过在build后加上 --report查看打包报告 

// package.json 
 "scripts": {
        "serve": "vue-cli-service serve --open",
        "build": "vue-cli-service build --report"
    },

  到现在已经配置好了,我们在重新运行打包命令,查看dist文件大小

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

 打包完成后要这个打包报告就没用了可以删除掉,watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_6,color_FFFFFF,t_70,g_se,x_16

项目上线

 通过node创建服务器,自己写一个简单服务器

1:在根目录创建一个文件夹server  cd 进入sever目录

2: 输入命令npm init -y 一路回车 初始化得到package.json

3:初始化包之后,输入命令cnpm i express -S下载依赖

4:复制dist文件夹,粘贴到server

5:server文件夹中创建app.js文件,编写代码如下

//学过node都知道,只是导入express,我们刚才下载好了
const express = require('express')
// 将方法赋值给app
const app = express()
//使用中间件加载静态资源./dist,我们需要将dist粘贴到同级目录
app.use(express.static('./dist'))
//监听端口8888,端口号随你写建议在3000以上不予默认端口冲突,就类似酒店的房门号,你我
//都是汉子可不能住一间,
app.listen(8888,()=>{
    console.log("服务器成功运行")
})
// 使用代理,解决接口不通过服务报错的问题
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

// 创建一个 Express 应用
const app = express();

// 设置 API 代理
app.use('/api', createProxyMiddleware({
	target: 'https://cbjtestapi.binjie.site:7777/api/generateStream', // 这里需要替换为你的 API 服务器地址
	changeOrigin: true,
	pathRewrite: {
		'^/api': '', // 如果 API 服务器的路径不需要 '/api' 前缀,就用这个规则去掉
	},
}));

// 设置静态文件服务,将 dist 目录作为静态资源目录
app.use(express.static('dist'));

// 启动 Express 服务器
app.listen(3000, () => {
	console.log('服务器启动成功!');
});

// 自动打开浏览器
const { exec } = require('child_process');
exec('start http://localhost:3000');

 

6:在终端中输入 node app.js  运行服务器 

效果图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16


我自己在浏览器url输入:http://localhost:8888/  你要访问需要我俩在同一局域网,输入我电脑ip:端口号   如下图:

这样就部署在我们自己写的服务器了,你输入我的电脑id和端口,我们在同一局域网你也可以访问这个项目了,这是我的电脑充当了服务器,不过要一直开着终端,可以借用插件,开一个进程,这样我关闭终端,你依旧可以访问项目

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

使用pm2管理应用开启进程 

 打开server文件夹的终端,输入命令:cnpm i pm2 -g
使用pm2启动项目,在终端中输入命令:pm2 start app.js --name 自定义名称
查看项目列表命令:pm2 ls
重启项目:pm2 restart 自定义名称
停止项目:pm2 stop 自定义名称
删除项目:pm2 delete自定义名称
 

开启gzip压缩

打开server文件夹的终端,输入命令:cnpm i compression -D
打开app.js,编写代码: 

//学过node都知道,只是导入express,我们刚才下载好了
const express = require('express')
const compression = require('compression')
    // 将方法赋值给app
const app = express()
app.use(compression())
    //使用中间件加载静态资源./dist,我们需要将dist粘贴到同级目录
app.use(express.static('./dist'))
    //监听端口8888,端口号随你写建议在3000以上不予默认端口冲突,就类似酒店的房门号,你我
    //都是汉子可不能住一间,
app.listen(8888, () => {
    console.log("服务器成功运行")
})

此时已成功将项目打包并部署服务器了,

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMC7mtLvlnKjpo47mtarph4w=,size_20,color_FFFFFF,t_70,g_se,x_16

结语:

希望大家都能好好的,没有加不完的班,修不完bug

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手写一个服务器代码将 《vue电商后台管理系统》部署上去 上线、打包 的相关文章

  • npm run 脚本的命名参数

    我想将命名参数传递给 npm run 脚本 这样我就可以执行如下操作 scripts say hello echo greeting ls npm run hello greeting hello 我希望它然后将 hello 代替 gree
  • 具有 Laravel 权限的 Vue.js

    我正在将 Laravel Permission API 与 Vue JS 前端集成 我在用https github com spatie laravel permission https github com spatie laravel
  • 如何在webpack的入口中添加通配符映射

    我需要对脚本文件夹中的所有js文件进行webpack 我尝试了这个 module exports module loaders test js exclude node modules loaders babel loader entry
  • Vuex 存储在 vue-router 中未定义

    我有一个路由器和一个全局beforeEach挂钩来验证身份验证 import store from store store const router new Router routes router beforeEach to from n
  • NPM 安装单个包,无需其余依赖项[重复]

    这个问题在这里已经有答案了 在 npm 中 如何在列表中没有其余依赖项的情况下安装单个包 因为如果我安装依赖项 例如npm i express所有其他依赖项也会安装 我如何防止这种情况并且只安装了快速安装 EDIT另一个问题有一个非常复杂的
  • package.json 中这些带有下划线前缀的属性有何用途?

    我在 package json 中发现这些属性带有下划线前缀 它们有什么用 为什么要在属性上添加下划线前缀 from email protected cdn cgi l email protection id email protected
  • .vue 组件中的条件样式表

    我正在使用 vue 组件 cli vue 仅当某些布尔值为真 假时 我才需要显示样式表 最简单的解释是这样的 什么时候myVar 假 组件未加载样式 我知道那样是不可能的 但是我怎么能做 类似 的事情呢 如果用户想使用默认样式 我需要在 v
  • Webpack“OTS 解析错误”加载字体

    我的 webpack 配置指定应使用加载字体url loader 当我尝试使用 Chrome 查看该页面时 出现以下错误 OTS parsing error invalid version tag Failed to decode down
  • 运行 webpack 抛出“回调已被调用”错误

    我刚刚开始学习 webpack 来管理项目中的依赖项 我正在尝试使用它为我的打字稿和 JavaScript 文件构建捆绑包 对于打字稿文件 我正在使用ts loader处理它的插件 对于CSS 我使用的是mini css extract a
  • 如何更改 React 项目中的生产构建静态文件夹路径?

    我有一个React我运行的项目npm run build它为我制作了一个生产版本 问题是它给了我注入以下样式表index html 可以看到 设置的路径是 static js 但我希望将路径设置为 static dashboard js 5
  • Vuetifyjs 错误未知的自定义元素:您是否正确注册了组件

    我使用 vuetify 构建模板但收到错误 unknown custom element dashboard did you register the component correctly 这是我的代码 In the main js im
  • Vue CLI 3 不会将供应商转换为 ES5

    我们有一个 vue cli 3 项目 它工作得很好并且编译没有问题 事实上 我们必须支持仅支持 ES5 代码的旧浏览器 在项目中我们集成了一些用ES6编写的外部库 reconnecting websocket是一个例子 Problem 使用
  • 如何使用 vue-google-charts 创建组织结构图

    按照使用 vue google charts 插件的说明进行操作 https www npmjs com package vue google charts https www npmjs com package vue google ch
  • 将最新的 terser-webpack-plugin 与 Webpack5 一起使用

    根据这个链接 简洁的文档 https webpack js org plugins terser webpack plugin terseroptions如果您使用最新的 Webpack 5 则无需安装 Terser 插件 因为它已包含在
  • 如何更新verdaccio的离线注册表?

    我安装了verdaccio in windows 8 os并且运行良好 当我尝试更新时我的问题开始了npm cache 更新版本后package json文件 我使用npm install registry http localhost 4
  • 如何在 vue.js 中将文件和数据附加到 FormData

    我正在尝试将上传的文件和数据值附加到 vue js 中的 FormData 中 在我的控制器中 只能评估文件请求 data return file categ 在我的方法中 var form new FormData var file th
  • Vuex 2.0 调度与提交

    有人可以解释一下什么时候使用调度和提交吗 我理解提交会触发突变 调度会触发操作 然而 派遣不也是一种行动吗 正如你所说 dispatch触发一个动作 并且commit触发突变 以下是如何使用这些概念 你总是用 dispatch来自路线 组件
  • 无法在单 SPA 应用程序中启动微前端应用程序

    我在尝试在 Single SPA 应用程序中启动子应用程序时遇到错误 基本上 我正在尝试开发一种 util 应用程序 Single SPA 中的子应用程序 其中包含 Sockjs Stomp client 等 我删除了节点模块和 packa
  • 如何在 webpack 2 和 typescript 以及 Angular 2 中使用 tree-shaking?

    我已经用 Angular 设置了 webpack 2 大多数情况下它似乎可以工作 但它似乎并没有做到这一点tree shaking 因为我有一个几乎不执行任何操作的应用程序 并且vendor js仍然是 800 KB 似乎关于如何打开 tr
  • 如何检查我的 create-nuxt-app 版本并升级?

    背景 以前 运行yarn create nuxt app myApp 会安装Nuxt v2 4 0 但今天我注意到您降级到Nuxt v2 0 0 我没有改变开发环境 所以我无法理解这种行为 当我发现这个问题时 我做了一些搜索并在其他地方抱怨

随机推荐

  • Java入门需要了解(集合工具类-三十三)

    集合工具类目录 集合工具类的作用 Collections Collections排序 被排序的类实现Comparable接口方式排序 使用比较器Comparator方式排序 逆序排序 Collections二分查找 Collections获
  • charles抓包

    charles抓包 charles抓https包 参考这个来配置 https blog csdn net qq 20113327 article details 122299433 下载 安装 然后就是配置 抓包原理就是手机用电脑的网络走代
  • 计算机网络分类及其(从多角度分类)主要特点

    一 按照网络的覆盖范围进行分类 从网络的覆盖范围进行分类 计算机网络可以分为局域网 广域网和城域网 1 局域网 局域网是在局部区域范围内将计算机 外设和通信设备通过高速通信线路互连起来的网络系统 常见于一栋大楼 一个校园或一个企业内 局域网
  • 冯·诺依曼、哈佛、改进型哈佛体系结构解析

    在如今的CPU中 由于Catch的存在 这些概念已经被模糊了 个人认为去区分他们并没有什么意义 仅作为知识点 哈佛结构设计复杂 但效率高 冯诺依曼结构则比较简单 但也比较慢 CPU厂商为了提高处理速度 在CPU内增加了高速缓存 也基于同样的
  • 密码学之密匙交换

    最近在学习网易公开课上可汗学院现代密码学的课程 整理了一下自己的笔记2 迪菲 赫尔曼密匙交换 迪菲 赫尔曼密匙交换利用了单向函数正向求解很简单 反向求解很复杂的特性 n x mod m s 已知n x m求s简单 已知n m s求x很难 此
  • html5中的localStorage 临时存储

    localStorage 临时存储 localStorage 用于长久保存整个网站的数据 只支持 string 类型的存储 容量一般在2 5Mb左右 保存的数据没有过期时间 直到手动去删除 而sessionStorage在网页回话结束时失效
  • 一个“程序员的自我修养”是什么?

    在 喜剧之王 中 周星驰扮演的尹天仇 一直梦想成为一名演员 而他不管是在扮演跑龙套 或者在街坊中开设演员训练班 亦或成为主角时 他对待演员的态度 始终是认真 热爱而又投入的 而那一本他随身携带的书 演员的自我修养 尽管不知道里面具体写的是什
  • Transformer warning: [encoder.embed_tokens.weight] is newly initialized

    在使用transformer 加载预训练的T5 encoder参数的时候 经常会出现 Some weights of T5EncoderModel were not initialized from the model checkpoint
  • Vue下载文件不成功及下载文件名称问题

    看代码 import axiosDown from axios downloadFile path return axiosDown url path method get responseType blob 这一步也很关键 一定要加上 r
  • Qt对动态库(*.dll)的封装以及使用

    创建工程 首先先择左侧项目的Library 再选择右侧的C Library库然后点击下一步 接下来需要设置工程名以及路径 点击下一步 下一步即可 这里需要设置Type为共享库Shared Library 并设置类名 然后一路默认即可 工程结
  • Fluid-数据缓存亲和性调度原理解析

    前言 在Fluid中 Dataset资源对象中所定义的远程文件是可被调度的 这意味着你能够像管理你的Pod一样管理远程文件缓存在Kubernetes集群上的存放位置 另外 Fluid同样支持对于应用的数据缓存亲和性调度 这种调度方式将应用
  • Windows——python版本的OpenCV的安装方法

    1 点进OpenCV的python版本下载网站 https pypi org project opencv python 2 点击历史版本 3 找到合适的版本 复制命令 4 打开cmd 粘贴已复制的命令
  • python中的异常处理方法

    目录 1 什么是异常 3 异常的分类 4 异常的类型 有很多 不一一列举 异常处理实操 基本语法结构 异常处理了解操作 1 什么是异常 代码运行出错之后就是异常 异常会导致程序立刻停止 是我们以后在编程过程中需要极力避免的情况 异常的外号
  • 爬虫之xpath插件下载与使用

    文章目录 1 下载xpath文件 2 打开chrome浏览器 3 点击右上角小圆点 4 更多工具 阔展程序 5 拖拽xpath插件放到阔展程序 6 如果失效 需要将后缀改为zip 7 再次拖拽 8 关闭浏览器重新打开 9 按ctrl shi
  • Pycharm连接Mysql8.0的坑

    Pycharm连接Mysql8 0 1 错误 S1009 The connection property zeroDateTimeBehavior acceptable values are CONVERT TO NULL EXCEPTIO
  • 数据数仓的三种建模方式

    所谓水无定势 兵无常法 不同的行业 有不同行业的特点 因此 从业务角度看 其相应的数据模型是千差万别的 目前业界较为主流的是数据仓库厂商主要是 IBM 和 NCR 这两家公司的除了能够提供较为强大的数据仓库平台之外 也有各自的针对某个行业的
  • 新基建时期助力打造数字化智慧交通体系

    在没多久之前公布的政府工作报告中 明晰了将重点扶持 两新一重 基础建设的战略方针 并且对 两新一重 体系的实际价值给出了 既促消费惠民生又调结构增后劲 的评价 两新一重 体系包含三个基础建设方向 即增强新型基础设施建设 发展新一代的信息网络
  • Struts2 标签详解(学习深入)

    Struts2 标签详解 详细的说明了struts2所有标签 a a标签创建一个HTML超链接 等价于HTML 的
  • 软件测试 - 自动化测试工具 selenium1

    1 什么是自动化测试 2 自动化测试金字塔 2 1 单元测试 2 2 接口测试 2 3 UI 自动化测试 3 为什么要使用 selenium 自动化框架 4 什么样的项目适合自动化测试 5 Selenium IDE 6 Webdriver
  • 手写一个服务器代码将 《vue电商后台管理系统》部署上去 上线、打包

    我将在博文中全程以cnpm作为代码格式 为了好复制 它快啊 你要知道node安装包自带npm npm下载cnpm才可以使用cnpm 今日目标 1 上线vue电商后台管理项目 2 手写搭建服务器并挂载 node 3 打包优化 完成上线 前期回