webpack入坑之旅(三)webpack.config入门
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新。下面是目前完成的列表:
- webpack入坑之旅(一)不是开始的开始
- webpack入坑之旅(二)loader入门
- webpack入坑之旅(三)webpack.config入门
- webpack入坑之旅(四)扬帆起航
- webpack入坑之旅(五)加载vue单文件组件
- webpack入坑之旅(六)配合vue-router实现SPA
在上面我们已经尝试过了两种对于loader的使用方式,无论是在require
的时候编写我们loader
的前缀,还是在我们的命令行中进根据扩展名来自动绑定我们的loader
,显然都不够自动化,在需要编译的语言继续增加的情况下,显然会是一个噩梦。
所以webapck实际上为我们提供了一个简单的方法,下面就一起来看看。
了解webpack配置
Webpack在执行的时候,除了在命令行传入参数,还可以通过指定的配置文件来执行。默认情况下,会搜索当前目录的webpack.config.js
文件,这个文件是一个 node.js
模块,返回一个 json
格式的配置信息对象,或者通过 --config
选项来指定配置文件。
所以现在我们就来新建一个webpack.config.js
,在里面填写进下面的内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var Webpack = require("webpack");
module.exports = {
entry: ["./entry.js"],
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [{
test: /\.css$/,
loader: "style!css"
}]
}
}
|
我们现在仅仅需要运行:webpack
,如果你的配置没有问题的话,可以在命令行中看到正确的输出,因为这个命令会自动在当前目录中查找webpack.config.js
的配置文件,并按照里面定义的规则来进行执行。
去修改我们的css文件吧,感受一下它的便利。
上面我们仅仅是使用了这个配置文件,我们肯定想在实际的工作环境中,自我对于项目进行针对性的配置。下面我们就先来简单的了解一下里面参数的意义:
entry
:指入口文件的配置项,它是一个数组的原因是webpack允许多个入口点。 当然如果你只有一个入口的话,也可以直接使用双引号"./entry.js"
output
:配置打包结果,path
定义了输出的文件夹,filename则定义了打包结果文件的名称module
:定义了对模块的处理逻辑,这里可以用loaders
定义了一系列的加载器,以及一些正则。当需要加载的文件匹配test的正则时,就会调用后面的loader
对文件进行处理,这正是webpack
强大的原因。
在这里仅仅能做一些很简单的介绍,如果想要真正做到在项目中的实际应用,还需要大量的练习与尝试。在此暂时不做过多的探究。等真正用到了再记录下来。
了解webpack插件
下面就来看看webpack
中的插件:
插件可以完成更多loader不能完成的功能。插件的使用一般是在webpack.config.js
中的plugins
选项中指定。
Webpack
本身内置了一些常用的插件,还可以通过npm安装第三方插件。
接下来,我们从一个最简单的,用来给输出的文件头部添加注释信息BannerPlugin
的内置插件来实践插件的配置和运行。
修改webpack.config.js,
添加 plugins配置项:
1
2
3
4
5
6
|
var Webpack = require("webpack");//必须引入
module:{
},
plugins: [
new Webpack.BannerPlugin("这里是打包文件头部注释!")//注意这是一个数组..
]
|
运行正确的话应该是这样的,打开bundle.js
,会发现在文件头部已经有了我们添加的注释:
1
2
3
4
5
6
|
/*! 这里是打包文件头部注释 */
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/*** 省略 ***/
})
|
最简单的插件使用方式就是这样的了,就如上面一样的,平淡无奇。
如果看到了这里,相信你对于webpack
的最基本的了解应该就差不多了,下面正式进入实战的阶段,来看看我们的一些loader
到底是怎么样使用的。
webpack入坑之旅(三)webpack.config入门的更多相关文章
- webpack入坑之旅(一)入门安装
学习一个新的东西,首先第一步就是安装,有时候会遇到各种奇葩的问题 至于什么是webpack我这里就不介绍了,请参考官网:https://github.com/webpack/webpack 安装 前提 ...
- webpack入坑之旅(六)配合vue-router实现SPA
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- webpack入坑之旅(五)加载vue单文件组件
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- webpack入坑之旅(四)扬帆起航
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- webpack入坑之旅(二)loader入门
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack 在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- webpack入坑之旅(一)不是开始的开始
最近学习框架,选择了vue,然后接触到了vue中的单文件组件,官方推荐使用 Webpack + vue-loader构建这些单文件 Vue 组件,于是就开始了webpack的入坑之旅.因为原来没有用过 ...
- webpack入坑之旅
转自: http://guowenfh.github.io/2016/03/24/vue-webpack-01-base/ http://guowenfh.github.io/2016/03/25/v ...
- vue+ vue-router + webpack 踩坑之旅
说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案 老司机可以忽略下面的内容了 1)起因 考虑到数据分离的问题 因为server是express搭的 自然少 ...
- Phalcon如何切换数据库《Phalcon入坑指南系列 三》
本系列目录 一.Phalcon在Windows上安装 <Phalcon入坑指南系列 一> 二.Phalcon入坑必须知道的功能(项目配置.控制器.模型.增.删.改.查) 三.Phalcon ...
随机推荐
- 几种语言的CGI编程
为了了解PHP.JSP.ASP出现之前人们写网站的方法,洒家研究了一波CGI,使用C.Python.batch.shell script语言写了几个简单的网页. CGI即通用网关接口,指web服务器调 ...
- 大话设计模式C++版——简单工厂模式
简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器. 1.抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程) class I ...
- [转]asp.net c# 网上搜集面试题目(附答案)
本文转自:http://www.cnblogs.com/hndy/articles/2234188.html 1.String str=new String("a")和String ...
- [麦先生]TP3.2之微信开发那点事[基础篇](微信支付签名算法)
两种模式:扫码支付和微信内支付(调用js-sdk) trade_type==native即扫码支付,只需要将code_url转成二维码,使用微信扫码即可: js-sdk微信内支付-调用微信js-sdk ...
- 实例变量和静态变量(或类变量static)
一个类通过使用运算符new可以创建多个不同的对象,这些对象将被分配不同的内存空间,准确的说法是:不同对象的实例变量将被分配不同的内存空间,如果类中有类变量,那么所有对象的这个类变量都被分配到同一处内存 ...
- Java多态:upcast和downcast
upcast例: public class Test { public static void main(String[] args) { Cup aCup = new BrokenCup(); aC ...
- 10 Things Every Java Programmer Should Know about String
String in Java is very special class and most frequently used class as well. There are lot many thin ...
- EEG montage
Source: WikiPedia - Electroencephalography Since an EEG voltage signal represents a difference betwe ...
- 053医疗项目-模块五:权限设置-将用户操作权限写入Session
权限管理指的是用户授权,与拦截器没有关系.拦截器只是一个技术,也可以用别的技术来实现的.别人问你权限管理,可不要和人家说什么拦截器.要说用户授权 前一篇文章是把实现了不同的用户呈现不用的菜单.这一篇文 ...
- Oracle XE http端口8080的修改
Oracle Express Edition(XE)默认的http端口是8080,这跟JBoss/Tomcat的默认端口相同,导致Jboss启动冲突. 修改办法: 1. 以dba身份登录XE 2. 执 ...