express整合webpack的打包文件dist

对于我来说,第一次接触前后端整合问题的小白,刚开始是一脸懵逼,这个问题整整坑了我一个晚上加一个早上,现在写出来总结;

前端开发:vue-cli+webpack;

后台开发:nodejs框架express;

前端开发之后,使用localhost能正确访问vue-cli自带的服务器。

而在后台方面,一开始我是直接在expres的views和public上开发前端页面,因此在一些配置方面都是上个项目的,现在整合新项目,让我有点方。

过程:

1、进入前端目录,npm run build 命令直接将前端项目打包成dist文件;

2、我是直接将dist文件复制到服务器的根目录;

3、更改routes文件夹下的index文件,将路由访问‘/‘改成渲染dist文件下的index.html;

结果:访问服务器,静态资源404;

二次改进过程:(经过大量的查资料)

1、找到vue-cli项目下的config文件夹下的index.js文件,找到build部分的assetsPublicPath;(接下来会说一下assetsPublicPath的作用)

2、将assetsPublicPath更改为‘http://localhost:5777/dist‘;

3、整合到express服务器上

结果:

src="http://localhost:5777/dist/static/js/manifest.0d43cb9e3c7036b97742.js" 

这个时候我就懵逼了,这不就是正确的路径吗?

可是还是404,这就尴尬了。

乱入一下assetsPublicPath知识点:

看了一下官方文档,蹩脚英语的我又懵逼了,我说一下大致意思,assetsPublicPath可以指定输出文件的公共地址在浏览器的引用。

首先,webpack在打包的时候已经为你写好了dist文件中静态资源的引用,也就是‘./static/js|css/***‘,也就是客户端访问dist可以加载静态资源。

但当dist部署到express上的时候,访问服务器时候,静态资源的url为:assetsPublicPath  +  ‘./static/js | css/ ***‘;

也就是上面代码所表示的。

可为什么还是404呢?这就关乎到express的问题了。

在app.js的配置中,有这样一行代码:

app.use(express.static(path.join(__dirname, ‘/public‘)));  

这句话的意思是设置express访问静态资源的目录,也就是express需要访问静态文件时都是从public入口。

所以第二种情况的地址实际上访问的是   src="http://localhost:5777/dist/dist/static/js/manifest.0d43cb9e3c7036b97742.js" 

也就是assetsPublicPath中的localhost:5777和express.static中的dist重复了。

				
时间: 2024-07-28 19:25:27

express整合webpack的打包文件dist的相关文章

webpack测试打包文件的两种方式

Commonjs模块化打包   接下来进行打包验证 npx webpack,输出结果部分如下 然后执行测试下打包输出文件main.js,这里测试有两者方法 (1)直接使用node环境测试 node main.js (2)新建html文件,引入js脚本然后启动验证 接下来执行live-server启动,然后浏览器测试即可 原文地址:https://www.cnblogs.com/jianxian/p/12411267.html

规范开发目录 及 webpack多环境打包文件配置

规范开发目录 普通项目 开发目录: ├── project-name ├── README.md ├── .gitignore ├── assets ├── ├── js ├── ├── css ├── ├── images ├── ├── fonts├── index.html vue 项目开发目录:├── build├── config├── dist├── src├──├── api├──├── assets├──├──├── js├──├──├── style├──├──├──├── b

webpack运行webpack .\src\main.js .\dist\bundle.js打包出错

打包的命令格式:webpack 要打包的未年检的路径  打包好的输出文件的路径 运行webpack .\src\main.js .\dist\bundle.js 提示错误,错误信息如下: WARNING in configurationThe 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'pro

【JavaScript】 Webpack安装及文件打包

背景 最近开启一个新项目,需要对前端的各类资源文件进行打包,经过多方调研后,决定使用webpack工具.但是网上的教程多是将webpack直接作为服务器使用,而我只是想将其作为单纯的资源打包工具而已.经过多方调研,终于发现如何实现webpack的文件打包功能. 准备 在使用webpack之前,必须先要安装nodejs和npm. 安装完npm后,由于npm国内访问非常慢,可以设置为从淘宝的镜像下载各种资源包. npm config set registry http://registry.cnpm

webpack打包经验——处理打包文件体积过大的问题

前言 最近对一个比较老的公司项目做了一次优化,处理的主要是webpack打包文件体积过大的问题. 这里就写一下对于webpack打包优化的一些经验. 主要分为以下几个方面: 去掉开发环境下的配置 ExtractTextPlugin:提取样式到css文件 webpack-bundle-analyzer:webpack打包文件体积和依赖关系的可视化 CommonsChunkPlugin:提取通用模块文件 提取manifest:让提取的公共js的hash值不要改变 压缩js,css,图片 react-

webpack基本打包配置流程

项目搭建以及webpack打包配置流程 创建文件夹EC(文件夹和文件名根据需求自定义) 在EC文件夹下新建文件夹APP 在APP文件夹下新建入口文件index.js 和运行该入口文件的index.html文件 在APP文件夹下新建两个js文件:a,js   b.js   (当项目级别如react项目,可以根据需求创建components文件夹等等,用于更好地管理模块化项目) APP/index.html <!DOCTYPE html> <html> <head> <

0基础手把手教你搭建webpack运行打包项目(未完待续)

这些天在项目之余的时间学习了webpack打包项目的东西,非常荣幸的找到一些大神的文章来学习,死劲嚼了几天,终于略知一二.在以后的工作上还需继续学习,下面我将分享我这几天学到的一点东西,希望能让我一个还不算入门webpack的小白领大家入门.本文主要还是摘抄大神的文章加上自己手动的一些过程记录,不喜勿喷,谢谢!开车了!!!开车了!!! 一.什么是Webpack webpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler).当 webpack 处理应用程序

Vue系列之 =&gt; webpack处理css文件

处理css文件 安装 npm i style-loader css-loader -D main.js import $ from 'jquery' //Es6中导入模块的方式 import './css/index.css' // import './css/index.css' webpack默认只能打包处理js类型文件 //如果需要处理非js类型的文件,我们需要手动安装一些合适的第三方loader加载器 // 1.打包处理css文件,需要安装 npm i style-loade css-l

webpack配置之webpack.config.js文件配置

webpack配置之webpack.config.js文件配置 webpack.config.js webpack resolve 1.总是手动的输入webpack的输入输出文件路径,是一件非常繁琐的事情.我们尝试用文件的形式将输入输出文件夹配置好.新建一个js文件,并命名为webpack.config.js[目前只能命名为这个,不然程序不识别] webpack.config.js 2.在webpack.config.js文件内输入以下代码 module.exports = { entry: '