经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » webpack » 查看文章
NodeJs使用webpack打包项目的方法详解
来源:jb51  时间:2022/2/28 15:24:19  对本文有异议

Webpack

为何要用::友好支持模块化、代码混淆、处理js兼容、性能优化等…

WebPack的使用

第一步:初始化项目:npm init -y

第二步:新建 src/index.html

第三步:安装模块Jquery npm install jquery

第四步:测试隔行换色

index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>隔行换色</title>
  8. <script src="./index.js"></script>
  9. </head>
  10. <body>
  11. <h1>web pack测试</h1>
  12. <!-- vscode快捷方式:ul>li{第$个li}*10 -->
  13. <ul>
  14. <li>第1个li</li>
  15. <li>第2个li</li>
  16. <li>第3个li</li>
  17. <li>第4个li</li>
  18. <li>第5个li</li>
  19. <li>第6个li</li>
  20. <li>第7个li</li>
  21. <li>第8个li</li>
  22. <li>第9个li</li>
  23. <li>第10个li</li>
  24. </ul>
  25. </body>
  26. </html>

index.js

  1. import $ from 'jquery'
  2. $(function(){
  3. $('li:odd').css('backgroundColor','green');//odd偶数
  4. $('li:even').css('backgroundColor','pink');//even奇数
  5. })

运行报错:

在这里插入图片描述

这就是兼容性问题

使用webpack打包解决问题官网:https://www.webpackjs.com/

第五步:安装webpack(两个包)npm install webpack webpack-cli -D (开发模式)

第六步:新建webpack.config.js

  1. /**
  2. * webpack 配置文件
  3. */
  4. module.exports={
  5. //调试时使用development开发模式
  6. //打包时使用production生产模式
  7. mode : 'development'
  8. }
  9.  

配置文件部分属性:

  • 默认打包入口:/src/index.js
  • 默认打包出口:/dist/main.js

可进行配置:

  1. /**
  2. * webpack 配置文件
  3. */
  4. const path=require('path');
  5. module.exports={
  6. //调试时使用development开发模式
  7. //打包时使用production生产模式
  8. mode : 'development',
  9. entry: path.join(__dirname,'./src/index.js'), //__dirname表示当前目录当前路径
  10. output: {
  11. path: path.join(__dirname,'./dist'),
  12. filename:'bundle.js',
  13. },//出口
  14.  
  15. }
  16.  

第七步:修改package.json(可有可无,运行方式不同)

package.json

  1. "scripts": {
  2. "dev": "webpack"
  3. },

第八步:执行打包npm run dev

目录下多出文件夹dist,终端含有’successfully’表示打包成功!

测试

首先修改index.html引入的js包

  1. <!--<script src="./index.js"></script>-->?
  2. <script src="../dist/main.js"></script>

运行:

在这里插入图片描述

表明webpack打包成功有效并且解决了兼容性问题!!!

WebPack打包CSS

传统都是用link引用

第一步:安装处理css的loader:npm i style-loader css-loader -D

根据实际需要安装对应的加载器

npm install less-loader -D (less加载器)

npm install sass-loader node-sass -D (sass加载器)

第二步:修改webpack.config.js:

  1. /**
  2. * webpack 配置文件
  3. */
  4. const path=require('path');
  5. module.exports={
  6. //调试时使用development开发模式
  7. //打包时使用production生产模式
  8. mode : 'development',
  9. entry: path.join(__dirname,'./src/index.js'), //__dirname表示当前目录当前路径
  10. output: {
  11. path: path.join(__dirname,'./dist'),
  12. filename:'bundle.js',
  13. },//出口
  14. devServer:{
  15. static: './src'
  16. },
  17. //新增内容css
  18. module:{ //处理css
  19. rules:[ //(规范)约束
  20. {test:/\.css$/,use:['style-loader','css-loader']}//正则表达式拓展名.css
  21. ]
  22. }
  23. }
  24.  

第三步:引入CSS文件:`

css

  1. #box{
  2. width: 200px;
  3. height: 100px;
  4. background-color: greenyellow;
  5. }

index.js中加在上方(css的路径要填写正确)import './css/style.css'

index.html

  1. <h1>CSS</h1>
  2. <div id="box">盒子</div>

第四步:运行测试:npm run dev

在这里插入图片描述

成功!!!

WebPack自动打包

由于每次更新代码都需要手动打包,这时我们要用上自动打包

①安装 npm install webpack-dev-server -D

②修改package.json(使得窗口自动打开并且自动打包)

  1. "scripts": {
  2. "test": "echo \"Error: no test specified\" && exit 1",
  3. "dev": "webpack-dev-server --open --host 127.0.0.1 --port 9090"
  4. },

③修改webpack.config.js

  1. devServer:{
  2. static: './src'
  3. }

④html引入bundle.js

打包后的文件都在根目录下

  1. <script src="/bundle.js"></script>

④运行验证npm run dev原理:服务器上运行监听,所以需要访问服务器

直接访问即可,成功实现WebPack自动打包

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注w3xue的更多内容! 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号