demo已经传到了github,地址:https://github.com/13476075014/04.node-vue-project/tree/master/03.singlewebpack

## 一:demo目的:

如何通过webpack和node来实现多个静态页面html,多个入口,能打包,能热加载,能开发环境调试,能生成dist里面的线上需要文件;

## 二:demo难点:

1.每个html都需要引入多个静态js,这时候配置入口文件就有问题?
  解决思路:把html的多个js,或者css的需要引入的静态文件,都通过一个js先引入进去,到时候直接引入这一个js就可以了。
  
2.如何动态获取到每个html的入口js作为webpack打包的入口文件?
  解决思路:通过glob这个插件来获取所有需要作为入口文件js的文件名,成为一个数组,然后循环这个数组,去拼接json的key:filename,value:filepath,这样就可以获取到完整的入口文件。
3.如何能在开发环境热加载这些打包后的静态文件,能实时刷新改动的内容?
  解决思路:不能用webpack-dev-server,因为现在是多个单页需要访问,用这个插件用到的"webpack-dev-middleware": "^1.12.2(这个版本过高会报错我这边。。,这个版本是可以的)" 和 "webpack-hot-middleware": "^2.25.0",这两个插件来实现开发环境,读取内存里面的打包完的文件,然后通过名字匹配node的路由来进行访问;

## 三:目录结构

 

dist -- 打包后的文件存放地址,正式环境只需要这个里面的文件就可以了;
public -- 静态资源 图片,css,js 的存放地址;
public --> js --> bundle 这个文件夹是存放一个静态html对应一个js,且名字要和html的名字一致;
views -- 静态html的文件夹;
main.js - node启动项目入口js;
webpack.config.js -- 是webpack打包的入口

## 项目启动

先 npm install 安装包;
然后 本地开发运行  npm start;
发布到线上就使用 npm run prodbuild;
具体运行代码方式在 package.json里面 :
 "scripts": {
    "start": "cross-env NODE_ENV=development node --inspect=9222 main.js",
    "prodbuild": "cross-env NODE_ENV=production npx webpack"
  },

如何通过webpack和node来实现多个静态页面html,多个入口,能打包能热加载开发环境调试的更多相关文章

  1. 使用webpack热加载,开发多页面web应用

    我们一般使用webpack热加载开发SPA应用,但工作中难免会遇到一些多页面的demo或项目. 故参考 kingvid-chan 的代码,搭了一个使用HRM开发多页面web应用的脚手架,刚好也进一步学 ...

  2. webpack 教程 那些事儿03-webpack两大精华插件,热加载

    本节主要讲述 webpack的两大经典开发调试插件,热插拔内存缓存机制 文章目录 1. html-webpack-plugin插件的使用 2. webpack-dev-middleware 插件登场 ...

  3. webpack2+node+react+babel实现热加载(hmr)

    前端工程化开发的一个重要标志就是热替换技术,它大大的提高开发效率,使我们专注于写代码,webpack2中的热替换相比较1更加简洁. 1. 先看效果 2.目录结构 3.项目目录结构文件描述 bin 执行 ...

  4. webpack3+node+react+babel实现热加载(hmr)

    前端工程化开发的一个重要标志就是热替换技术,它大大的提高开发效率,使我们专注于写代码,webpack3中的热替换相比较1更加简洁. 1. 先看效果 Demo地址 https://github.com/ ...

  5. webpack无法热加载(__webpack_hmr 502)

    最近本地开发项目代码一直无法热加载,于是就抽空想办法解决 我们线上的地址是:https://aitest.ichuanyi.com/ai-admin/#/  其实ai-admin是线上的一个目录 所以 ...

  6. webpack+express实现“热更新”和“热加载”(webpack3.6以前的做法)

    “热更新”:对应的是 'webpack-dev-middleware' 中间件 “热加载”:对应的是 'webpack-hot-middleware' 中间件 为了使用这两个中间件,必须修改“webp ...

  7. Webpack热加载和React(其中有关于include和exclude的路径问题)

    看了几个React配合webpack的教程,大部分都因为版本问题过时了.终于找到了一个不错的教程.记录下其中的知识点. 首先万分感谢这个教程的制作者.少走了许多弯路,正在学习webpack的小伙伴可以 ...

  8. vagramt中同步文件,webpack不热加载

    这是一篇参考文章:https://webpack.js.org/guides/development-vagrant/ 在使用vue-cli+webpack构建的项目中,如何使用vagrant文件同步 ...

  9. Node.js实现热加载

    不管是node.js原生开发,还是借助express,kora等框架开发node.js的情况下,在对代码做出更新后,都是需要重启已生效我们的文件的. 本文记录一次在原生node.js开发的时候,为项目 ...

随机推荐

  1. [C++] 浅拷贝和深拷贝

    浅拷贝只是简单的值拷贝: 深拷贝需要重新分配空间. 系统默认的拷贝构造函数属于浅拷贝. #include <iostream> using namespace std; class A { ...

  2. [Beta]第九次 Scrum Meeting

    [Beta]第九次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/19 21:20 20min 大运村公寓6F寝室 附Github仓库:WEDO 例会照片 (一人回 ...

  3. 并发下sftp连接报错——com.jcraft.jsch.JSchException: connection is closed by foreign host

    当对单接口极限测试时,随着并发量上升,接口稳定性出现不稳定的情况,排查后台日志,发现报错在该接口调用sftp上传时出现问题(确切的是在初始化连接时失败) 原因:系统SSH终端连接数配置过小,查看虚拟机 ...

  4. win10下通过npm成功搭建react开发环境

    1.安装node-v12.13.1-x64(LTS) 2.安装creatre-react-app: npm install -g create-react-app 3.通过create-react-a ...

  5. jquery click 与原生 click 的区别

    $.click() 触发的事件中没有 event.originalEvent , 不同触发 href="" 中的内容 $[0].click() 可以 <script type ...

  6. 【LeetCode算法-26】Remove Duplicates from Sorted Array

    LeetCode第26题 Given a sorted array nums, remove the duplicates in-place such that each element appear ...

  7. 相位展开(phase unwrapping)算法研究与实践

    1. 什么是相位展开? 相位展开(Phase Unwrapping)是一个经典的信号处理问题,它指的是从值区间中恢复原始相位值(原因在于:计算相位时,运用反正切函数,则相位图中提取的相位都是包裹在一个 ...

  8. net::ERR_ABORTED 404 (Not Found)

    对于按需加载(on-demand-load)或加载外部资源(external resources)(如图片.文件等)来说,webpack的配置,output.publicPath是很重要的选项.如果指 ...

  9. [LeetCode] 227. Basic Calculator II 基本计算器 II

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  10. python:日期计算

    python语言中的datetime模块可以利用其中的方法获取不同的日期,比如获取当前日期.明天.昨天.上个月.下个月和明年.下面利用几个实例说明这些日期的获取方法,操作如下: 第一步,利用datet ...