常用指令

  • npm install == npm i
  • npm install --save == npm i -S
  • npm insall --save-dev == npm i -D
    两者的区别:-D只在开发环境中使用,如loader,babel等;-S在生产环境和开发环境中都要使用,如Vue,jquery等。

配置流程

初始化

(1)新建一个空项目,然后初始化
npm init
然后会生成一个package.json文件

配置webpack

(1)在项目本地安装webpack,webpack4需要webpack-cli,一起安装
npm i -D webpack webpack-cli
npm为5.x版本以上的话,会生产node_modules文件夹和package.lock.json文件。

(2) webpack在打包时,会默认寻找根目录下的webpack.config.js配置文件,打包入口文件默认为src/index.js文件,考虑到后续配置方便,在根目录下创建相关文件夹和文件,项目结构如图所示:

我们手动来配置一下。打开webpack.config.js文件,写入:

index.htmlindex.js里写一些测试代码(3) 开始打包,打开package.json文件,在script里添加一条:即使用webpack打包,配置文件为webpack.config.js。然后在终端输入命令npm run dev.可以看到打包完成信息,同时在项目目录中多出来一个dist文件夹,里面有打包生产的main.bundle.js文件

配置webpack-dev-server

(1)为方便在开发时查看编译效果,安装webpack-dev-server,它可以在开发环境中提供很多服务,如开启一个服务器、热更新、接口代理。首先,在本地局部安装:
npm i -D webpack-dev-server 然后将package.json中的script更改为:

其中--open指打包成功后自动开启浏览器。
注意
webpack-dev-server打包后生成的文件保存在内存(根目录llocalhost:8000/下)中而不是本地项目的dist目录中,所以在index.html通过src="dist/main.bundle.js"的方式引入失败,应该改为scr="./main.bundle.js"
解决办法如下: (1)通过src="http://localhost:8000/main.bundle.js"的方式引入
(2)在webpack.config.jsoutput中添加一条 然后通过src="assets/main.bundle.js"的形式引入

(2)webpack-dev-server的热更新功能只适用于更改了静态文件,当修改配置文件时还是需要重新运行,所以安装nodemon来监听配置文件的改动,实现热更新。
安装nodemon,npm i -D nodemon
修改package.json:

"dev": "nodemon --watch webpack.config.js --exec \"webpack-dev-server --mode development\"",
"build": "webpack --config webpack.config.js --mode production"
复制代码

清除dist

因为要多次修改代码进行构建,多次生成的dist会很多余,所以在每次构建前先删除之前的dist,安装插件clean-webpack-plugin: npm i -D clean-webpack-plugin 安装成功后在webpack.config.js文件中添加2句:

自动生成html

手动创建的html文件需要我们手动添加js文件等资源路径,很不方便,所以使用html-webpack-plugin来自动生成html文件。
(1)安装npm i -D html-webpack-plugin
(2)配置webpack.config.js

然后就会自动在dist目录下生成已经引用好静态资源的index.html

转载于:https://juejin.im/post/5cb2e23c5188257aeb0d9034

webpack4配置(1)-打包一个js文件相关推荐

  1. 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法

    配置 postCSS 自动添加 css 的兼容前缀 ① 运行 npm i postcss-loader autoprefixer -D 命令 ② 在项目根目录中创建 postcss 的配置文件 pos ...

  2. webpack打包处理js文件中的高级语法

    前言 在js文件中定义一个User类 import $ from 'jquery' import './css/at.css' import './css/at.less' import './css ...

  3. 两个html文件互相访问变量,访问一个js文件的变量上的HTML文件

    我已经在那里我宣布,我想在一个脚本在HTML中使用一个变量js文件访问一个js文件的变量上的HTML文件 js文件(controllerB.js) var modalArticles = []; $( ...

  4. 在一个js文件中引入另一个js文件

    第一个js文件(被引入的js文件),文件名one.js,内容如下 function alertInOne(){     alert('in one'); } 第二个js文件,文件名two.js,内容如 ...

  5. 一款好用的JS插件xm-select【只需要引用一个JS文件就搞定】

    一款好用的JS插件xm-select[只需要引用一个JS文件就搞定] 先上js代码:复制保存直接用 !function(e){var t={};function n(o){if(t[o])return ...

  6. myeclipse 生成html文件 调用js,MyEclipse怎么创建一个js文件

    优质回答 回答者:牛小凡 点击file -- new -- 输入javascript 然后选择下面的javascript source file 输入名字 ,点击finish 就能新建js文件了,如下 ...

  7. webpack 单独打包指定JS文件

    背景 最近接到一个需求,因为不确定打出的前端包所访问的后端IP,需要对项目中IP配置文件单独拿出来,方便运维部署的时候对IP做修改.因此,需要用webpack单独打包指定文件. CommonsChun ...

  8. Highcharts教程--把js代码从html中抽离出来,放到单独的一个js文件中。由html页面调用...

    1.html页面写法 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  9. react 打包体积过大_create-react-app andt 打包的 js 文件过大

    初步学习 react 使用 antd 官方的配置好按需加载之后,发现 npm run start 和 npm run buidl 之后的 static/js/0.chunk.js 文件有 3.5+M, ...

最新文章

  1. H264格式具体说明
  2. [原创]关于在VS2008和VS2010中禁用及卸载Visual Assist X的方法研究
  3. R语言比较运算符和逻辑运算符
  4. Apache启动错误:could not bind to address[::]:443
  5. django python3.6_Django+mysql+python3.6.5 Windows
  6. Access和sql server的语法区别
  7. DevExpress GridControl Gridview RepositoryItemCheckEdit复选框及获取选择行数据
  8. sql server 缓存_了解SQL Server查询计划缓存
  9. Spring事务嵌套
  10. ArcObjects操作PageLayoutControl中元素位置,以图框、ITextSymbol为例
  11. 识别图书ISBN号并输出查询结果的示例 | Marshal's Blog
  12. AHA加速器测试,安卓、IOS、windos、mac测试正常
  13. 函数简介篇——环境变量函数
  14. 百度地图海量点位渲染造成卡顿问题解决
  15. ubuntu测网速方法
  16. CSDN发博客上传照片失败问题解决方案
  17. 基于区块链的分布式金融网络
  18. 家居行业渠道商销售系统线上线下一体化运作,促进产品更新迭代
  19. SMM - Spring,SpringMVC,MyBatis 三大框架整合
  20. 云服务器的概念(云服务器年度最低价来了,就要抓住双11)

热门文章

  1. HTML5自定义属性
  2. 最简单的图形用户代码_简单几句代码,画出精美的图形,快跟着学起来~
  3. 计算同比和环比的区别_【数据说第三期】同比和环比数据分析时,有哪些需要注意的点?...
  4. python基础到实践教程_Python从入门到实践案例教程(21世纪高等学校计算机教育实用规划教材)...
  5. vim python 代码提示_linux vim 编写代码python使用tab补全
  6. sqlserver isnull函数使用
  7. 物联网核心安全系列——智能门锁安全问题
  8. 【转载】石油天然气常用单位换算
  9. 寻找最优秀AI公司 | 量子位2018年度评选启幕
  10. AI已火,宗教当生,硅谷出了个“洪秀全”