一 、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. CORS 实战 专题

    本文会代码层面对CORS问题进行剖析 CORS相关相关概念可参考http://www.cnblogs.com/softidea/p/5496719.html ERROR info: XMLHttpRe ...

  2. 安装mysql5.5.28的步骤 2017.6.27

    http://blog.sina.com.cn/s/blog_7cd69a6501014x7h.html

  3. MongoDB中级---->关联多表查询

    http://www.linuxidc.com/Linux/2011-08/41043.htm DBRef is a more formal specification for creating re ...

  4. Java系列2 --- 你真的知道Java的String对象么?

    ​在上一篇中说道这篇文章会说java的动态绑定机制,由于这个知识点放在继承中讲会比较合适,说以在这篇文章中先来详细的说说String对象吧. ​只要学过Java的同学,我们都知道Java一共有8中基本 ...

  5. Requests库作者另一神器Pipenv的用法

    前言 我们在运行 Python 项目的时候经常会遇到一些版本问题,例如 A 项目依赖于 Django 1.5,而 B 项目又依赖 Django 2.0,而我们的系统却只有一个 Python 解释器,我 ...

  6. Selenium 指定浏览器位置

    在脚本开头要指定浏览器位置. public static void main(String[] args) throws InterruptedException, IOException { Sys ...

  7. Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方

    转自https://www.cnblogs.com/qiumingcheng/p/7126281.html 先说明一下好处有哪些:1,如果你想 new 一个空的 List ,而这个 List 以后也不 ...

  8. socketWriter.go

    package blog4go import ( "bytes" "fmt" "net" "sync" ) // Soc ...

  9. 深入理解Java:内省(Introspector)

    深入理解Java:内省(Introspector) 内省(Introspector) 是Java 语言对 JavaBean 类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传 ...

  10. dqname_widnows.go

    package nsqd // On Windows, file names cannot contain colons. func getBackendName(topicName, channel ...