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的更多相关文章

  1. 《Qt Quick 4小时入门》学习笔记4

    http://edu.csdn.net/course/detail/1042/14806?auto_start=1 Qt Quick 4小时入门 第七章:处理鼠标与键盘事件 1.处理鼠标事件 鼠标信号 ...

  2. 《Qt Quick 4小时入门》学习笔记3

    http://edu.csdn.net/course/detail/1042/14807?auto_start=1 Qt Quick 4小时入门 第八章:Qt Quick中的锚(anchors)布局 ...

  3. 《Qt Quick 4小时入门》学习笔记2

    http://edu.csdn.net/course/detail/1042/14805?auto_start=1   Qt Quick 4小时入门 第五章:Qt Quick基本界面元素介绍   1. ...

  4. 《Qt Quick 4小时入门》学习笔记

    http://edu.csdn.net/course/detail/1042/14804?auto_start=1   Qt Quick 4小时入门 第五章:Qt Quick里的信号与槽   QML中 ...

  5. 一小时入门PHP

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:[http://blog.csdn.net/sdksdk0/article/details/52332296](http://blog.csdn ...

  6. Webpack笔记(一)——从这里入门Webpack

    准备了挺久,一直想要好好深入了解一下Webpack,之前一直嫌弃Webpack麻烦,偏向于Parcel这种零配置的模块打包工具一些,但是实际上还是Webpack比较靠谱,并且Webpack功能更加强大 ...

  7. 一小时入门 Python

    因为需求, 需要用到py, 所以来学学py, 因为有java基础 一小时入门py语法是不成问题的, 但是仅仅入门基础语法而已, 不涉及算法,不涉及大数据,机器学习,人工智能, 但是py这么火爆,就在于 ...

  8. 【一小时入门】webpack 入门指南

    什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...

  9. webpack一小时入门

    什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...

随机推荐

  1. 安装完DevExpress14.2.5,如何破解它呢?

    DevExpress是一个界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.DevExpress开发的控件有很强的实力,不仅功能丰富,应用简单,而且界面华丽,更可方便订制,方便开发人员开 ...

  2. jsp jsp常用指令

    jsp指令是为jsp引擎设计的,他们并不直接产生任何可见输出,而只是告诉引擎如何处理jsp页面中的其余部分. jsp中的指令 page指令 include指令 taglib指令 jsp指令的基本语法 ...

  3. MVC 表单提交

    用户提交表单 写法一(推荐) 一,不带参数 <body> <!--一下写法生成:<form action="/Home/Index" method=&quo ...

  4. [转载]JS浏览器兼容性问题

    from:http://dada-fangfang.iteye.com/blog/811749 做BS开发就难免会用到javascript,而每个浏览器对javascript的支持有不同.这就需要我们 ...

  5. Java通过继承外部类来建立该外部类的protected内部类的实例(转)

    原文链接:http://blog.sina.com.cn/s/blog_7de00ff60102xffx.html 如果想要在外部类的导出类(子类)中建立该外部类的为protected权限的内部类的实 ...

  6. Python GIL 系列之再谈Python的GIL

    1. 之前写过一篇<通过实例认识Python的GIL>的文章,感觉有些意犹未尽 2. 这次对例子作了些扩展,进一步的分析GIL对Python程序的影响 2.1 先来看例子: [python ...

  7. View的事件拦截机制浅析

    为什么要去分析view的事件 记得上周刚立的flag就是关于view的事件机制.那现在我来说说我对view的感受.关于view的事件,百度google一搜.一批又一批.但是能让人理解的少之又少.换句话 ...

  8. 1.1.2A+B for Input-Output Practice (II)

    A+B for Input-Output Practice (II) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768  ...

  9. Gradle 下载不了

    可自行下载对应的 gradle-x.x-all.zip 放在下列目录 C:\Users\penno\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv ...

  10. 常用增强学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2) (转载)

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/77144590 和其它的机器学习方向一样,强化学习(Reinforcement Learni ...