webpack自动化构建你的项目
1.读万卷书,行万里路。
2.书山有路勤为径,学海无涯苦作舟。
技术段:
相信很多刚接触前端的小伙伴,对一些自动化工具会感觉无可下手。现在前端的发展的势头,势必和后台形成一个对立面,独挡一面。
这篇文章我就写一些关于webpack的东西,学的不深,后续深入学习再更新博客。
webpack是什么?为什么要使用webpack?其实做什么事都是一样的,一个东西的出现,必有它出现的意义。
webpack功能很多,当初接触webpack是因为在开发的过程中遇到一个问题,在版本迭代的时候会存在一个缓存的问题,就是当你更新
代码的时候,因为缓存的原因,你的新代码没能及时的上线,而功能就不会及时的呈现到用户面前。刚开始还不那么严重,到后面迭代
了很多个版本,这个问题一直存在,后面就有了关于webpack的学习。
这个我就只大概说一下整个流程,流程没有错,相信你会成功的把webpack的环境给安装成功。(网上有很多教程)
1.安装node.js。第一步肯定要装node.js这是webpack必须的开发环境,直接去node.js官网下载最新版本安装就可以了。
安装完可以在终端输入命令node -v检查安装的node.js的版本。
2.安装npm。这个也是必须安装的。npm是什么?建议你要去了解一下,这里推荐你一个纯技术网站,菜鸟教程。很适合新手。
在你开发项目的主目录打开终端,在终端输入 npm install --save-de 就可以安装了。你是不是在想为什么输入这个命令就可以了啊?
其实你不必奇怪,因为你安装了node.js,这些东西node.js里面的,你只是需要把它们下载到本地使用就可以了。不必惊讶。
3.后面就是安装很多很多的插件,记住这些插件也是在node.js里面下载的,我们只需要输入命令下载就可以了。
插件一:npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react
插件二:npm install --save-dev style-loader css-loader
安装webpack:npm install --save-dev webpack-dev-server
在当前目录运行打包代码:npm run qzq (运行的命令)
下面是一些文件的配置:
2、package.json配置内容
{
"name": "daka",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"bdtt": "webpack --config webpack.bdtt.config.js",
"daka": "webpack --config webpack.daka.config.js",
"dakaSuccess": "webpack --config webpack.dakaSuccess.config.js",
"qzq": "webpack --config webpack.qzq.config.js"
},
"author": "zhang",
"license": "ISC",
"devDependencies": {
"autoprefixer": "^7.1.3",
"babel": "^6.23.0",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"clean-webpack-plugin": "^0.1.16",
"css-loader": "^0.28.7",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^0.11.2",
"html-webpack-plugin": "^2.30.1",
"install": "^0.10.1",
"jquery": "^3.2.1",
"less": "^2.7.2",
"less-loader": "^4.0.5",
"npm": "^5.3.0",
"postcss-loader": "^2.0.6",
"style-loader": "^0.18.2",
"url-loader": "^0.5.9",
"webpack": "^3.5.5",
"webpack-dev-server": "^2.7.1"
},
"description": "wxy",
"dependencies": {
"webpack": "^3.5.5"
}
}
3、webpack.qzq.co3、webpack.qzq.co3、webpack.qzq.config.js内容
// 一个常见的`webpack`配置文件
const webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var CleanPlugin = require('clean-webpack-plugin');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var autoprefixer = require('autoprefixer');
module.exports = {
entry: {
'zmQzq':__dirname + "/require/qzq/zm_qzq.js",
'zmMine':__dirname + "/require/qzq/zm_mine.js",
},
output: {
path: __dirname + "/build/qzq",
filename: "[name].js"
},
devtool: 'none',
devServer: {
contentBase: "./",//本地服务器所加载的页面所在的目录
historyApiFallback: true,//不跳转
inline: true,
hot: true
},
module: {
rules: [
{
test: /(\.jsx|\.js)$/,
use: {
loader: "babel-loader"
},
exclude: /node_modules/
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
},
{
test:/.(png)|(jpg)$/,
loader: "url-loader?limit=8192"
}
]
},
plugins: [
new CleanPlugin(['build'], {
root: '/Users/huizhang/web-git/apps/newproject/build/qzq',
// root: 'D:/web/apps/newproject/build',
verbose: true,
dry: false //false表示删除
/* 排除 exclude: ['shared.js']*/
}), //清空目录
new ExtractTextPlugin("[name].css"),
new HtmlWebpackPlugin({
filename: __dirname + '/resource/zm_insurance/zm_list.html', //这个路径要相对于output.path输出的JS设置 在JS的上一级就用 ../../
chunks: ['zmQzq'], //限定这个模板只引入index 和公用部分JS common.js
hash: true, // 为静态资源生成hash值 在引入资源地址后加上?hash值 实现不修改文件名加版本号功能
xhtml: true, // 需要符合xhtml的标准
inject: 'body',
template: __dirname + '/resource/zm_insurance/zm_list.ejs' //模板地址
}),
new HtmlWebpackPlugin({
filename: __dirname + '/resource/zm_insurance/zm_mine.html', //这个路径要相对于output.path输出的JS设置 在JS的上一级就用 ../../
chunks: ['zmMine'], //限定这个模板只引入index 和公用部分JS common.js
hash: true, // 为静态资源生成hash值 在引入资源地址后加上?hash值 实现不修改文件名加版本号功能
xhtml: true, // 需要符合xhtml的标准
inject: 'body',
template: __dirname + '/resource/zm_insurance/zm_mine.ejs' //模板地址
})
]
};
webpack自动化构建你的项目的更多相关文章
- Vue项目模板--和--webpack自动化构建工具的---项目打包压缩使用
[首先安装node.js]: 1. 从node.js官网下载并安装node,安装过程很简单. 2. npm 版本需要大于 3.0,如果低于此版本需要升级它: # 查看版本 npm -v2.3.0 #升 ...
- D1.1.利用npm(webpack)构建基本reactJS项目
前提: 已经安装nodejs和npm #全局安装webpack 自动构建化工具,职能管理项目:webpack-dev-server是开发工具,提供 Hot Module Replacement 功能# ...
- 用Docker运行Jenkins自动化构建.NET Core项目
目标 当代码提交到GitHub后,自动生成构建项目并部署到服务器.接下来介绍一下如何在容器中运行Jenkins,并自动化构建GitHub上的项目,使用自动化构建来解放你的双手. 前置条件 一台已经安装 ...
- K8S+Jenkins自动化构建微服务项目(后续)
因为之前写过基于K8S部署jenkins master/slave平台,在这个的基础上构建微服务到K8S集群中 Jenkins-slave构建微服务项目到K8S集群 1.微服务项目上传到git仓库 这 ...
- 亚信UED前端流程自动化构建工具
亚信UED前端流程自动化构建工具 .wmd-input, .wmd-input:focus, #md-section-helper {font-size: 14px !important;line-h ...
- [Vue 牛刀小试]:第十七章 - 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍
一.前言 在上一章中,我们开始通过 Vue CLI 去搭建属于自己的前端 Vue 项目模板,就像我们 .NET 程序员在使用 asp.net core 时一样,我们更多的会在框架基础上按照自己的开发习 ...
- webpack前端构建工具学习总结(四)之自动化生成项目中的html页面
接续上文:webpack前端构建工具学习总结(三)之webpack.config.js配置文件 插件的介绍文档:https://www.npmjs.com/package/html-webpack-p ...
- 前端项目自动化构建工具——Webpack入门教程
参考资料:https://www.webpackjs.com/(中文文档) https://www.webpackjs.com/(官方文档) 首先有必要说明一下,本文侧重讲解webpack基本配置 ...
- 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
随机推荐
- 【Docker 命令】- images命令
docker images : 列出本地镜像. 语法 docker images [OPTIONS] [REPOSITORY[:TAG]] OPTIONS说明: -a :列出本地所有的镜像(含中间映像 ...
- [OS] 操作系统基本类型
·批处理系统:(用户脱机使用.成批处理.多道程序运行) 批处理系统,又名批处理操作系统.批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行.这种采用批量处理作业技术的操作系 ...
- ueditor 定制工具栏图标
在使用Ueditor时,如要简化工具栏上的按钮,可以修改配置项的方法: 1. 方法一:修改 ueditor.config.js 里面的 toolbars 2. 方法二:实例化编辑器的时候传入 tool ...
- bzoj3782上学路线
题意:从n*m网格图的左下角走到右上角(n,m<=10^10),有t个坐标不能经过(t<=200),只能向上向右走,问有多少种不同的走法,对p取模, p只有两种取值,1000003(质数) ...
- 【bzoj1441】Min 扩展裴蜀定理
题目描述 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 输入 第一行给出数字N,代表有N个数 下面一行给出N个数 输出 S ...
- 【bzoj3524】[Poi2014]Couriers 主席树
题目描述 给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. 输入 第一行 ...
- BZOJ4710 JSOI2011分特产(容斥原理+组合数学)
显然可以容斥去掉每人都不为空的限制.每种物品分配方式独立,各自算一个可重组合乘起来即可. #include<iostream> #include<cstdio> #includ ...
- Oracle 分页、取期间数据、TOP前几
Oracle没有 sqlserver的 top number 功能.只能以期间的形式实现 代码实现分页,参数curPage 当前页.pageSize 每页行数,计算出起始结束页码 int startP ...
- 【枚举】 最大子矩阵(I)
题注:最大子矩形问题的解决办法最初由中国国家集训队王知昆前辈整理并发表为论文,在此说明并感谢. Definition 给你一个大矩形,里面有一些障碍点,求一个面积最大的矩形,满足该矩形在大矩形内部且该 ...
- SpringMVC源码解析-HTTP请求处理和分发
1.HandlerMapping的配置和设计 在初始化完成时,所有的handlerMapping都已经被加载,handlerMapping存储着HTTP请求对应的映射数据,每一个handlerMapp ...