一小时入门webpack
webpack现在已经成为了大众化的项目必要脚手架,基本上现在的很多项目都需要webpack,由于webpack的出现glup和grunt已经完败,今天我们来说一下webpack如何使用。
首先我们需要包依赖,npm init初始化package.json,我们只需要把我们需要的东西引入就可以了,代码如下:
{
"name": "",
"version": "1.0.0",
"description": "",
"main": "",
"scripts": {
"test": "",
"build": "webpack -p",
"dev": "webpack -w"
},
"author": "",
"license": "",
"devDependencies": {
"babel-core": "^6.20.0",
"babel-loader": "^6.2.9",
"babel-plugin-transform-runtime": "^6.15.0",
"babel-polyfill": "^6.13.0",
"babel-preset-es2015": "^6.18.0",
"babel-preset-stage-0": "^6.16.0",
"babel-runtime": "^6.20.0",
"crypto": "*",
"happypack": "^3.0.2",
"css-loader": "^0.23.1",
"es6-promise": "*",
"extract-text-webpack-plugin": "^1.0.1",
"fetch-polyfill": "^6.13.0",
"file-loader": "^0.9.0",
"node-sass": "^3.13.1",
"sass-loader": "^4.0.2",
"style-loader": "^0.13.1",
"url-loader": "^0.5.7",
"vue": "^2.0.5",
"vue-hot-reload-api": "^2.0.6",
"vue-html-loader": "^1.2.3",
"vue-awesome-swiper": "*",
"vue-loader": "^8.5.4",
"vue-style-loader": "^1.0.0",
"webpack": "^1.13.3",
"webpack-dev-server": "^1.16.2",
"webpack-merge": "^0.14.1"
},
"dependencies": {
"babel-polyfill": "^6.20.0",
"fetch-polyfill": "^0.8.2",
"vue-lazyload": "^1.0.0-rc7"
}
}
scripts下面是命名npm运行,只要我们npm run build就会执行webpack -w
devDependencise 里面是所有的开发环境依赖包
deoendencies 里面是所有的生产环境的依赖包
也就是我们开发需要的东西都依赖在dev下,这样我们在电脑上执行npm install就会把所有的dev依赖全部安装下来
我们配置的相面的npm之后我们就可以配置webpack的config了
我们新建一个webpack.config.js代码如下
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin"); module.exports = {
entry:{
home:'./source/javascript/home.config.js'
},
output:{
path:'dist/',
filename:'[name].js'
},
module:{
loaders:[
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract('style','css!sass')
},
{
test: /\.es6$/,
loader: "babel-loader",
query:{
presets:['es2015']
}
},
{test:/\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader?-autoprefixer")},
{ test: /\.vue$/, loader: 'vue'}
]
},
plugins:[
new ExtractTextPlugin("[name].css"),
]
};
当我们运行npm run dev的时候,就会执行到这个文件
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
第一行代码为了把webpack引入到当前文件中,webpack我们之前npm install的时候已经加载到node_modules中
第二行代码是为了打包css文件,编译sass,acss,less等,他还有一个更好的优点就是postcss处理自动添加适应不同css浏览器的前缀。
之后我们只需要开始写webpack的配置:
module.exports = {
entry:{//项目入口,文件从这里进入
home:'./source/javascript/home.config.js'
},
output:{//项目出口,压缩到这个目录下
path:'dist/',
filename:'[name].js'
},
module:{//添加一些我们需要依赖的loaders,注意:所有我们需要的依赖都需要写在package.json中然后install进入到项目里面
loaders:[
{//将scss编译成css压缩文件
test: /\.scss$/,
loader: ExtractTextPlugin.extract('style','css!sass')
},
{//将所有的es6语法编译成es5语法,注意:这里babel的配置可以卸载query中,但是还是推荐自己新建一个.babelrc来配置
test: /\.es6$/,
loader: "babel-loader",
query:{
presets:['es2015']
}
},
{test:/\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader?-autoprefixer")},
{ test: /\.vue$/, loader: 'vue'}//编译vue
]
},
plugins:[//引入需要的组件,例如我们react项目,我们需要阿里开发的ant样式库,我们需要install到项目中,之后配置到webpack这个位置
new ExtractTextPlugin("[name].css"),
]
};
babelrc配置:
{
"presets": ["es2015", "stage-0", "react"]
}
es2015:表示转移es6语法
stage-0:表示es7语法天的转码规则一共有四个阶段(推荐使用2,虽然没有太大区别)
当然我们可能有的项目也会需要用到eslint,他和babel是类似的也是需要一个.eslintrc文件
{
"plugins": [
"babel"
],
"rules": {
"arrow-parens": ,
"babel/arrow-parens": ,
"no-console": ,
"no-const-assign":
}
}
当你把所有都配置好之后,我们只需要运行npm run dev命令,我们就会吧自己的js,vue压缩到对应的dist目录中,我们在页面只需要引入dist中js和css就实现了资源压缩的目的
一小时入门webpack的更多相关文章
- 《Qt Quick 4小时入门》学习笔记4
http://edu.csdn.net/course/detail/1042/14806?auto_start=1 Qt Quick 4小时入门 第七章:处理鼠标与键盘事件 1.处理鼠标事件 鼠标信号 ...
- 《Qt Quick 4小时入门》学习笔记3
http://edu.csdn.net/course/detail/1042/14807?auto_start=1 Qt Quick 4小时入门 第八章:Qt Quick中的锚(anchors)布局 ...
- 《Qt Quick 4小时入门》学习笔记2
http://edu.csdn.net/course/detail/1042/14805?auto_start=1 Qt Quick 4小时入门 第五章:Qt Quick基本界面元素介绍 1. ...
- 《Qt Quick 4小时入门》学习笔记
http://edu.csdn.net/course/detail/1042/14804?auto_start=1 Qt Quick 4小时入门 第五章:Qt Quick里的信号与槽 QML中 ...
- 一小时入门PHP
[版权申明:本文系作者原创,转载请注明出处] 文章出处:[http://blog.csdn.net/sdksdk0/article/details/52332296](http://blog.csdn ...
- Webpack笔记(一)——从这里入门Webpack
准备了挺久,一直想要好好深入了解一下Webpack,之前一直嫌弃Webpack麻烦,偏向于Parcel这种零配置的模块打包工具一些,但是实际上还是Webpack比较靠谱,并且Webpack功能更加强大 ...
- 一小时入门 Python
因为需求, 需要用到py, 所以来学学py, 因为有java基础 一小时入门py语法是不成问题的, 但是仅仅入门基础语法而已, 不涉及算法,不涉及大数据,机器学习,人工智能, 但是py这么火爆,就在于 ...
- 【一小时入门】webpack 入门指南
什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...
- webpack一小时入门
什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...
随机推荐
- Linq的简介和基础知识学习
学习LINQ之前,我们要知道LINQ是干什么,解决什么问题的,怎样学习? 一.LINQ简介 1.什么是LINQ? 什么是LINQ?LINQ中文翻译为语言集成查询(Language Integrated ...
- PHP:第一章——php中的变量001 /普通赋值/引用赋值/php变量的检查与销毁
<?php //php中的变量: //php中的变量用一个美元符$后面紧跟着变量名来表示,变量名是区分大小写的. //有效的变量只能是字母或者下划线开头,后面跟任意数量的字母.数字.或者下划线. ...
- Maven 入门篇 ( 上 )
写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 maven 来构建运行 hello ...
- 7dynamic_cast用法
已知下面的class层次,其中每一个class都定义有一个default constructor和一个virtual destructor: class X{……}; class A{……}; cla ...
- hibernate一对一关联
hibernate一对一主键关联 一对一主键关联指的是两个表通过主键形成的一对一映射. 数据表要求:A表的主键也是B表的主键同时B表的主键也是A表的外键 sql: create table peopl ...
- 技术揭秘“QQ空间”自动转发不良信息
大家经常会看到QQ空间自动转发一些附带链接的不良信息,即便我们的QQ密码并没有被盗取.最近通过对一个QQ空间自动转发链接进行分析,发现该自动转发机制通过利用腾讯网站存在漏洞的页面,精心构造出利用代码获 ...
- pip删除依赖、配置虚拟环境
问题:跑openpose代码的时候,出现问题 tensorpack 0.8.6 requires tqdm>4.11.1, which is not installed.tf-pose 0.1. ...
- ARM裸板开发:04_MMU 链接地址与运行地址不一致时,(SDRAM)初始化程序地址无关码问题的分析
ARM裸板开发过程,程序的链接地址设置为为0x30000000,而前期的启动代码以及相关硬件的初始化代码需要在内部iRAM(steppingstone,起始地址0x0)的4K中运行.链接地址与运行地址 ...
- 【转】react的高阶组件
React进阶之高阶组件 前言 本文代码浅显易懂,思想深入实用.此属于react进阶用法,如果你还不了解react,建议从文档开始看起. 我们都知道高阶函数是什么, 高阶组件其实是差不多的用法,只 ...
- MySQL 5.7.18的安装与主从复制(转自:https://www.baidu.com/home/news/data/newspage?nid=9485770887287731252&n_typ)
CentOS6.7安装mysql5.7.18 1. 解压到/usr/local目录 # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /us ...