一 、webpack学习环境准备:

  1:window系统

  2:安装node.js  官方网址

   下载好后下一步下一步安装即可

安装步骤略过.......

  3:nrm的安装

  打开cmd命令控制台 输入:npm i nrm -g   (全局安装nrm包)

  安装好后使用 nrm ls 查看

  使用nrm use 镜像地址名称

注意:nrm只是提供了几个常用的下载包的URL地址。最终的装包工具还是npm或者cnpm工具,比如后面安装webpack包:cnpm install -g webpack  就会从nrm中带* 的地址中去下载。

  4:安装cnpm 安装包工具(以安装webpack或者webpack-dev-server 我都使用cnpm来安装不适用npm安装)

  执行命令:npm i cnpm -g (全局安装)

二、webpack 简单介绍

    Webpack 是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。

    中文官网:https://webpack.css88.com/

  webpack 安装

    执行 cnpm install -g webpack 命令全局安装

    执行 npm install --save-dev webpack-cli

    执行 webpack -v 查看版本号(说明安装成功了。)

 三、结合简单案例

    开发工具为 Visual Studio Code

    案例初始目录结:根目录 webpack 里面有dist 和src两个文件夹 src文件夹里创建一个html和js文件

index.html代码:

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>webpack-demo</title>
<!-- <script src="./index.js"></script> -->
<!-- 在这里我们就不再直接引用main.js文件了 -->
<script src='../dist/bundle.js'></script>
</head> <body>
<ul>
<li>这是第1个li</li>
<li>这是第2个li</li>
<li>这是第3个li</li>
<li>这是第4个li</li>
<li>这是第5个li</li>
<li>这是第6个li</li>
<li>这是第7个li</li>
<li>这是第8个li</li>
<li>这是第9个li</li>
<li>这是第10个li</li>
<li>这是第11个li</li>
<li>这是第12个li</li>
<li>这是第13个li</li>
<li>这是第14个li</li>
<li>这是第15个li</li>
<li>这是第16个li</li>
<li>这是第17个li</li>
<li>这是第18个li</li>
<li>这是第19个li</li>
<li>这是第20个li</li>
</ul>
</body> </html>

main.js代码

// 导入jQuery ES6语法
import $ from 'jquery' $(function () {
// 页面li各行变色
$('li:odd').css('backgroundColor', 'blue');
$('li:even').css('backgroundColor', function () {
return '#' + 'D97634'
});
});

这时候运行会报语法错误

// 导入jQuery ES6语法
import $ from 'jquery'

因为ES6的语法浏览器解析不了所以报错。

这时候改用到webpack上场了...................................

  1:初始化一下项目执行:npm init -y

这时候项目中就会多一个package.json文件

  2:以上代码中需要用到jquery所以要在控制台中安装jQuery 执行:npm i jquery  -S

这时候项目中会创建一个node_modules文件夹,这里就是一些js文件

执行webpack命令

  

   .\src\index.js:要执行的文件路径

  .\dist\bundle.js:执行完成后存放的路径

 这时候dist文件家中就会多个bundle.js文件

这时候在预览html就可以看到效果了。。。。

如果js中代码修改了,就要手动在此执行打包命令才会生效。

注意如果上面安装或者打包出现错误了参考一下webpack打包The 'mode' option has not been set,错误提示

四、webpack执行命令打包命令配置

  在项目根目录中创建一个webpack.config.js文件

  内容如下:

const path =require('path')

// 通过Node模块操作,向外面暴露一个配置对象
module.exports={
entry:path.join(__dirname,'./src/main.js'),// 打包文件
output:{
path:path.join(__dirname,'./dist'),// 打包好的文件存放地址
filename:'bundle.js' // 打包好文件的文件名
},
mode: 'development' // 设置mode
}

以后在执行大包命令就没那么反锁了: webpack .\src\index.js .\dist\bundle.js  直接输入 webpack就完成打包了。

五、webpack-dev-server 自动打包编译 

   1:运行 cnpm i webpack-dev-server -D 安装
 

  2:安装完成后执行webpack-dev-server 执行报错:

  2-1:执行上面指令会报错,因为webpack-dev-server依赖于webpack,由于webpack是全局安装,webpack-dev-server是在项目中安装
   所以无法在powershell中执行,只有安装到全局(-g)的工具才能正常执行
   注意:使用webpack-dev-server工具不仅在当前项目中需要安装webpack-dev-server还需要在本项目中安装webpack
  3: 要想能执行,必须在package.json文件的“script”节点下新增:"dev":"webpack-dev-server"
  4: 添加好配置后执行:npm run dev
  4-1:如果报错是安装包的问题:删除node_modules文件夹 后执行 cnpm i (重新安装包)

 六、webpack-dev-server常用命令

  

--open:当在命令行执行 npm run dev 自动开启网页

--port 9000 修改访问端口号

--contentBase src :托管的根目录

--hot :热启动 ,不会立即跟新,而是以打补丁方式只打包修改部分的代码。

七、html-webpack-plugin插件 访问内存中的网页

  1:在项目中执行:cnpm i html-webpack-plugin -D

  2: 在webpack.config.js中导入

  // 导入在内存中生成HTML的插件,只要是插件都要放到plugins节点中。

  const htmlWebpackFlugin=require('html-webpack-plugin')

  3:在webpack.config.js配置文件的plugins节点中加入插件

    // 配置插件节点

    plugins:[

    new htmlWebpackFlugin({
    template:path.join(__dirname,'./src/index.html'),// 指定模板页面
    filename:'index.html' // 指定要生成的文件名称
    })// 创建一个在内存中生成html页面插件
    ],

最后执行 npm run dev

查看网页源代码。

 八、style-loader css-loader 加载非JS文件

建一个css样式文件去掉li前面的点  index.css 

ul li{

list-style: none;
}

  1:安装 style-loader css-loader这两个第三方插件

     cnpm i style-loader css-loader -D

  2:在js中这样引用,import './css/index.css'

  3:在webpack.config.js配置文件中加入:

测试重启webpack :npm run dev   发现li前面的样式不见了。

 九、处理less less 。。。。和上面的步骤一样,网上搜索处理文件的loader第三方包,然后配置规则

   main.js 导入文件

    css:import '路径+样式名称.css'

    less:import '路径+样式名称.less'

    sass:import '路径+样式名称.less'

  在项目中导入loader

    css:cnpm i style-loader css-loader -D

    less: cnpm i less-loader less -D

    sass: cnpm i less-loader sass-D

  

  在webpack.config.js配置文件module节点的rules匹配规则中加入:

    css:{ test: /\.css$/, use: ['style-loader', 'css-loader'] },//配置处理.css文件的第三方loader规则

    less: { test:/\.less$/,use: [ 'style-loader' , 'css-loader' , 'less-loader' ] },// 配置处理less文件loader规则

    scss: { test:/\.scss$/,use: [ 'style-loader' , 'css-loader' , 'sass-loader' ] },// 配置处理less文件sass规则

webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件的更多相关文章

  1. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  2. Android 学习笔记之Volley(八)实现网络图片的数据加载

    PS:最后一篇关于Volley框架的博客... 学习内容: 1.使用ImageRequest.java实现网络图片加载 2.使用ImageLoader.java实现网络图片加载 3.使用NetWork ...

  3. 【JAVAWEB学习笔记】网上商城实战2:异步加载分类、Redis缓存分类和显示商品

    网上商城实战2 今日任务 完成分类模块的功能 完成商品模块的功能 1.1      分类模块的功能: 1.1.1    查询分类的功能: 1.1.2    查询分类的代码实现: 1.1.2.1  创建 ...

  4. PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载

    参考文献: 1.PHP PSR-4 Autoloader 自动加载(中文版) 2.PHP编码规范(中文版)导读 3.PHP-PSR-[0-4]代码规范 基本步骤: (1)在vendor 下新建一个项目 ...

  5. tensorflow学习笔记(三十四):Saver(保存与加载模型)

    Savertensorflow 中的 Saver 对象是用于 参数保存和恢复的.如何使用呢? 这里介绍了一些基本的用法. 官网中给出了这么一个例子: v1 = tf.Variable(..., nam ...

  6. Webpack 学习笔记总结

    Webpack安装 Linux系统默认已经安装了node&npm,但版本比较低,而且没法升级,可以重新下载Node然后通过软链接替换系统自带的node和npm; ln -s /path_to/ ...

  7. webpack 学习笔记 02 快速入门

    webpack 的目标 将依赖项分块,按需加载. 减少web app的初始加载时间. 使每一个静态集合都能够作为组件使用. 有能力集成第三方库,作为组件使用. 高度可配置化. 适用于大型项目. INS ...

  8. CentOS学习笔记--Tomcat安装

    Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...

  9. Vue.js中用webpack合并打包多个组件并实现按需加载

    对于现在前端插件的频繁更新,所以多多少少要对组件化有点了解,下面这篇文章主要给大家介绍了在Vue.js中用webpack合并打包多个组件并实现按需加载的相关资料,需要的朋友可以参考下.   前言 随着 ...

  10. OracleDesigner学习笔记1――安装篇

    OracleDesigner学习笔记1――安装篇   QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一.       前言 Oracle是当 ...

随机推荐

  1. 思维导图软件比较-FREEMIND,XMIND,Mindjet Mindmanager

    https://www.zhihu.com/question/22094277

  2. LeetCode Javascript实现 100. Same Tree 171. Excel Sheet Column Number

    100. Same Tree /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; ...

  3. 玩转Web之html+CSS(一)---论坛首页表格的实现

    转载请说明出处,小编博客地址:http://blog.csdn.net/u012116457 最近本来想去写一个类似论坛的页面,论坛首页一般都需要一个表格去显示数据,自己简单的写了一下,先上一张图 c ...

  4. 4. 整合MyBatis

    mybatis既有jdbc的灵活,有具有orm工具的方便,是一套很好用的工具,这儿就使用mybatis来作为数据访问工具,具体添加过程如下: 1. 添加mybatis依赖,并更新项目 <depe ...

  5. selenium 定位元素成功, 但是输入失败 (textarea)

    问题描述 UI页面功能测试中, 定位元素并输入(通过sendKey()方法输入), 显示输入失败. 根本原因 为了修复一个bug, 这个元素从input改成了textarea, 而textarea是有 ...

  6. 电脑开机出现“致命错误C0000034。。。”--该怎么办?

    win7或win8系统的电脑在开机时出现了 "致命错误C0000034 正在更新操作236,共156764个0000000000000000.cdf-ms "的提示并不能正常启动系 ...

  7. BZOJ_1691_[Usaco2007 Dec]挑剔的美食家_贪心

    BZOJ_1691_[Usaco2007 Dec]挑剔的美食家_贪心 题意: 与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返 ...

  8. BZOJ_2561_最小生成树_最小割

    BZOJ_2561_最小生成树_最小割 题意: 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条 ...

  9. ArcGIS API for JavaScript 入门教程[1] 渊源

    ->对于萌新,你可能需要了解一下这个东西是什么 ->对于已经知道要用这个东西的开发者,你可能需要了解一下它的底层机制 不针对大牛.龟速更新ing. 转载注明出处.博客园&CSDN& ...

  10. SQL 如何在自增列插入指定数据

    SQL Server  中数据表往往会设置自增列,常见的比如说 首列的ID列. 往数据表插入新数据的时候,自增列是跳过的,无需插入即会按照设置的自增规则进行列增长.那么,如果我们想往自增列插入我们指定 ...