在实际工作中,我们的项目都会配置一个Json的文件或者说API文件,作为项目的配置文件. 有时候你也会从后台读取到一个json的文件,这节课就学习如何在webpack环境中使用Json. 如果你会webpack1或者webpack2版本中,你是需要加载一个json-loader的loader进来的,但是在webpack3.x版本中,你不再需要另外引入了. 1.在src下的index.html中加一个div <div id="json"></div> 2.在根目录…
1.在根目录新建一个webpack.config.js文件,然后开始配置: const path = require('path'); module.exports={ //入口文件的配置项 entry:{ entry:'./src/entry.js' }, //出口文件的配置项 output:{ //输出的路径,用了Node语法 path:path.resolve(__dirname,'dist'), //输出的文件名称 filename:'bundle.js' }, //模块:例如解读CSS…
1.在终端安装 cnpm i webpack-dev-server --save-dev 2.配置好后执行 webpack-dev-server,这时候会报错 出现错误,只需要在pagejson里配置下scripts就可以了 3.下载好后,需要配置下devServer const path = require('path'); //引入path module.exports={ //暴露出来 entry:{ entry:'./src/entry.js', entry2:'./src/entry2…
随着项目大了,后端与前端联调,我们不需要每一次都去打包,这样特别麻烦,我们希望的场景是,每次按保存键,webpack自动为我们打包,这个工具就是watch! 因为watch是webpack自带的插件,所以我们只需要配置就行了 1.在webpack.config.js中配置: watchOptions:{ poll:1000,//监测修改的时间(ms) aggregeateTimeout:500, //防止重复按键,500毫米内算按键一次 ignored:/node_modules/,//不监测…
为了浏览器的兼容性,有时候我们必须加入-webkit,-ms,-o,-moz这些前缀.目的就是让我们写的页面在每个浏览器中都可以顺利运行. 1.安装 cnpm i postcss-loader autoprefixer --save-dev 2.在根目录新建一个postcss.config.js文件 module.exports = { plugins: [ require('autoprefixer') ] } 这就是对postCSS一个简单的配置,引入了autoprefixer插件.让pos…
1.window+R键,输入cmd打开命令行工具,输入 mkdir XXXX(XX:文件夹名): 2.cd XXX 进入刚刚创建好的文件夹里,输入cnpm install -g webpack (安装了淘宝镜像的小伙伴可以直接使用cnpm,没有安装的使用npm)cnpm和npm的区别这里就不多说了,不懂的小伙伴可以百度 附图一张: 3.安装好之后初始化一下,(初始化的主要目的是生成package.json文件)在命令行工具中输入: cnpm init,输入完成后,会有一系列的内容,会问到你关于项…
1.进入根目录,建两个文件夹,分别为src和dist 1).src文件夹:用来存放我们编写的javascript代码,可以简单的理解为用JavaScript编写的模块. 2).dist文件夹:用来存放供浏览器读取的文件,这个是webpack打包成的文件. 2.在dist下建立一个index.html文件,写入以下代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-…
1.在src下新建css文件,在css文件下新建index.css文件,输入以下代码 body{ background:pink; color:yellowgreen; } 2.css建立好后,需要引入到入口文件,这里我们引入到entry.js中 import css from './css/index.css'; 3.在终端安装 cnpm i style-loader --save-dev cnpm i css-loader --save-dev 4.安装好后,我们开始在webpack.con…
1 .首先在webpack.config.js中引入 const uglify = require('uglifyjs-webpack-plugin'); 2.然后在plugins配置里 plugins:[ new uglify() ] 3.在终端输入webpack,你会发现JS代码已经被压缩了,如果你用的是VSCode,可以按住Alt+Z代码自动换行,查看效果 4.上图 前端必学内容:webpack(模块打包器) webpack3 学习内容,点击即可到达 (1).webpack快速入门——如何…
1.把dist中的index.html复制到src目录中,并去掉我们引入的js 2.在webpack.config.js中引入 const htmlPlugin = require('html-webpack-plugin'); 3.引入后进行安装   cnpm i html-webpack-plugin --save-dev 4.在webpack.config.js中进行插件配置 new htmlPlugin({ minify:{ removeAttributeQuotes:true }, h…
1.首先在网上随便找一张图片,在src下新建images文件夹,将图片放在文件夹内 2.在index.html中写入代码:<div id="pic"></div>来放置图片 3.设置图片的css #pic{ background-image: url(../images/pic.png); width:60px;height:60px; } 4.编写完成后,进行打包,这时候会报错,先不要慌,这是因为缺少file-loader和url-loader 5.安装fil…
1.在终端安装extract-text-webpack-plugin 2.引入插件 const extractTextPlugin = require("extract-text-webpack-plugin"); 3.配置 new extractTextPlugin('/css/index.css') module:{ rules: [ { test: /\.css$/, use: extractTextPlugin.extract({ fallback: "style-l…
在webpack中是不喜欢你使用标签<img>来引入图片的,但是我们作前端的人特别热衷于这种写法, 国人也为此开发了一个:html-withimg-loader.他可以很好的处理我们在html 中引入图片的问题. 1.安装 cnpm install html-withimg-loader --save-dev 2.在webpack.config.js配置 { test: /\.(htm|html)$/i, use:[ 'html-withimg-loader'] } 3.输入webpack进行…
1.要使用less,首先使用npm安装less服务 cnpm install less --save-dev 还需要安装Less-loader用来打包使用. cnpm install less-loader --save-dev 2.在module中配置 { test: /\.less$/, use: [{ loader: "style-loader" }, { loader: "css-loader" , { loader: "less-loader&q…
1.安裝:因为sass-loader依赖于node-sass,所以需要先安装node-sass cnpm install node-sass --save-dev cnpm install sass-loader --save-dev 2.配置 { test: /\.scss/, use: [{ loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'sass-loader' }] } 3.新建一个sass文件,编写div 4…
使用PurifyCSS可以大大减少CSS冗余 1.安装 cnpm i purifycss-webpack purify-css --save-dev 2.引入glob,因为我们需要同步检查html模板,所以我们需要引入node的glob对象使用.在webpack.config.js文件头部引入glob.引入purifycss-webpack 3.配置 new PruifyCSSPlugin({ paths:glob.sync(path.join(__dirname,'src/*.html'))/…
1.Babel的安装与配置 Babel其实是几个模块化的包,其核心功能位于称为babel-core的npm包中,webpack可以把其不同的包整合在一起使用,对于每一个 你需要的功能或拓展,你都需要安装单独的包(用得最多的是解析ES6的babel-preset-es2015包和解析JSX的babel-preset-react包). 我们先一次性安装这些包,如果安装出错,小伙伴们可以一个一个安装 cnpm install --save-dev babel-core babel-loader bab…
在配置devtool时,webpack给我们提供了四种选项. source-map:在一个单独文件中产生一个完整且功能完全的文件.这个文件具有最好的source map,但是它会减慢打包速度: cheap-module-source-map:在一个单独的文件中产生一个不带列映射的map,不带列映射提高了打包速度,但是也使得浏览器开发者工具只能对应到具体的行,不能对应到具体的列(符号),会对调试造成不便. eval-source-map:使用eval打包源文件模块,在同一个文件中生产干净的完整版的…
package.json中,devDependencies和dependencies是不同的 devDependencies:开发依赖 dependencies:生产依赖(线上) 1.安装生产环境的依赖包: cnpm install --production 2.配置生产环境和开发环境并行: 我们在以前的配置中设置了一个变量website,用于静态资源正确找到路径.那如果生产环境和开发环境不一样,而且我们需要来回切换,这时候我们需要更好的设置方法. var website={ publicPat…
首先在根目录,新建一个webpack_config文件夹,然后新建entry_webpack.js文件,代码如下: const entry ={}; //声明entry变量 entry.path={ entry:'./src/entry.js' //声明路径属性 } module.exports =entry;//进行模块化 2.在webpack.config.js中引入 const entry = require('./webpack_config/entry_webpack.js'); 3.…
下面说两种方法: 一. 1.引入jQuery,首先安装: cnpm install --save jquery 2.安装好后,在我们的entry.js中引入: import $ from 'jquery' 3.引入完成后,我们在entry.js中写入jquery的语法 进行测试: 4.使用 npm run server 效果如下: 二. 1.用plugin引入 如果你觉的上面的方法和webpack没什么关系,只是普通的引入,webpack只是负责了一下打包,这样并没有全局感.那再学习一种在web…
1.抽离jquery,vue(多个第三方类库抽离) 修改入口文件(webpack.config.js中) entry: { entry: './src/entry.js', jquery:'jquery', vue:'vue' }, 2.引入插件: new webpack.optimize.CommonsChunkPlugin({ name:['jquery','vue'],//对应入口文件的jquery(单独抽离) filename:'assets/js/[name].js',//抽离到哪里…
工作中会有一些已经存在但在项目中没有引用的图片资源或者其他静态资源(比如设计图.开发文档), 这些静态资源有可能是文档,也有可能是一些额外的图片.项目组长会要求你打包时保留这些静态资源, 直接打包到制定文件夹.其实打包这些资源只需要用到copy-webpack-plugin. 1.首先新建文件夹public,然后在网上随便找几张图片,保存在文件夹内 2.安装插件 cnpm i copy-webpack-plugin --save-dev 3.引入插件 const copyWebpackPlugi…
其他章节请看: webpack 快速入门 系列 自定义 wepack 上 通过"初步认识webpack"和"实战一"这 2 篇文章,我们已经学习了 webpack 最基础的知识.在继续学习 webpack 更多用法之前,我们先从更底层的角度来认识 webpack. 自定义 webpack 分上下两篇,上篇介绍 webpack 的两个核心,loader和plugin:下篇我们自己实现一个简单的 webpack. 初始化项目 loader 和 plugin 将使用此环境…
其他章节请看: webpack 快速入门 系列 性能 本篇主要介绍 webpack 中的一些常用性能,包括热模块替换.source map.oneOf.缓存.tree shaking.代码分割.懒加载.渐进式网络应用程序.多进程打包.外部扩展(externals)和动态链接(dll). 准备本篇的环境 虽然可以仅展示核心代码,但笔者认为在一个完整的环境中边看边做,举一反三,效果更佳. 这里的环境其实就是实战一一文完整的示例,包含打包样式.打包图片.以及打包javascript 项目结果如下: w…
学习webpack https://github.com/webproblem/learning-article#webpack https://github.com/lengziyu/learn-webpack 先跟着下面这个例子来做一遍,因为版本原因如果你跟着原文可能会出错,所以我会在这里修复原文中的错误,本文使用的是4.29.3版本 https://segmentfault.com/a/1190000006178770?utm_source=tag-newest 请结合官方文档来进行学习…
初步认识 webpack webpack 是一种构建工具 webpack 是构建工具中的一种. 所谓构建,就是将资源转成浏览器可以识别的.比如我们用 less.es6 写代码,浏览器不能识别 less,也不支持 es6 的某些语法,这时我们可以通过构建工具将源码转成浏览器可以识别的 css 和 js. webpack 是一种模块化解决方案 以前,前端只需要写几个html.css.js就能完成工作,现在前端做的项目更加复杂,在性能.体验.开发效率等其他方面,都对我们前端提出了更高的要求. 为了能按…
继续之前请确认你已经安装了nodejs 安装.初始化: 然后找个目录新建名为webpack-demo的文件夹,然后在命令行下进入该目录,执行以下命令: npm init -y npm install --save-dev webpack 一个初始化命令,会在当前目录下生成一个package.json的配置文件 一个本地安装webpack的命令 目录内的结构如下:(以/开头的为目录) webpack-demo |- package.json + |- index.html + |- /src +…
什么是Webpack 顾名思义它是一个前端打包工具,通过给定的入口文件自动梳理所有依赖资源(包括css.图片.js等),并按照配置的规则进行一系列处理(转es5.压缩等),打包生成适合现代生产环境要求的文件.同时也借此竖起技术壁垒,防止后端改代码[滑稽]. npm基本操作 现今前端体系构建在node之上,npm是node的包管理器.webpack.babel等只是工具包,都通过npm安装. 初始化新项目 npm init 全局安装依赖包PACKAGE,不属于具体哪个项目 npm install…
实战一 准备本篇的环境 虽然可以仅展示核心代码,但笔者认为在一个完整的环境中边看边做,举一反三,效果更佳. 这里的环境其实就是初步认识 webpack一文完整的示例,包含 webpack.devServer.处理css.生成 html. 项目结构如下: webpack-example2 - src // 项目源码 - a.css - b.js - c.js - index.html // 页面模板 - index.js // 入口 - package.json // 存放了项目依赖的包 - we…