webpack如何与gulpfile联合的使用
一、对webpack的一些理解
webpack支持CommonJS的书写形式。
CommonJS指一个文件一个模块,但会一次性加载(即同步加载),但在浏览器端不适用这种方式,加载速率什么的,于是引入了异步加载,其中有CMD(sea.js)与AMD(require.js)。
CMD:define(function (require, exports, module) {})延迟加载的方式,等用到资源了再加载,
AMD:define("alpha", ["require", "exports", "beta"], function (require, exports, beta) {})提前加载的方式,用的时候资源已经加载完成
abc.js
document.write(require('./module.js')) // 添加模块
module.js
module.exports = 'It works from module.js.'
要上是引用模块的方式
二、安装使用
1.全局安装webpack
npm install webpack -g
2.建立一个package.json
npm init
3.安装webpack依赖
npm install webpack --save-dev
4.使用webpack开发工具,安装webpack-dev-server此时的outpath中没有输出,需要webpack -p发布了才有
npm install webpack-dev-server --save-dev
注:使用--save-dev的目的是使将所安装的依赖加入到package.json中。
5.调试时执行命令
webpack-dev-server --progress --colors
6.发布
webpack -p
三、webpack.config.js的常用功能及配置
1.entry:设置入口。存放主文件
2.output:设置输出
path:输出文件路径
filename:输出文件名称
publicPath:设置资源访问路径,即localhost:8080直接在该目录下访问,否则从根目录下访问
3.loader:Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换
test:匹配希望处理文件的路径
exclude:匹配不希望处理文件的路径
loader:此处xxx-loader可以简写为xxx,?后以query方式传递给loader参数
处理JS
{
test: /\.js$/,
exclude: /node_modules|vue\/src|vue-router\//,
loader: 'babel'
//babel可以让我们在编写代码时使用ES6的版本
}
处理css
{
test: /\.css$/,
loader: ExtractTextPlugin.extract(
"style-loader",
"css-loader?sourceMap"
)
//loader: "style!css" //用css-loader解析,再用style-loader解析
}, {
test: /\.less$/,
loader: ExtractTextPlugin.extract("style-loader", "css-loader!less-loader")
//loader: "style!css!less"//先用less-loader解析,再用css-loader解析,再用style-loader解析
}
以上使用extract-text-webpack-plugin将css从js代码中抽出并合并,如不需要则使用注释的代码
处理图片与字体
{
test: /\.(png|jpg)$/,
loader: 'url-loader?limit=8192' // <= 8kb的图片base64内联
},
{
test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10000&minetype=application/font-woff'
},
{
test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10&minetype=application/font-woff'
},
{
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10&minetype=application/octet-stream'
},
{
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
loader: 'file'
},
{
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10&minetype=image/svg+xml'
}
解析vue
{
test: /\.vue$/,
loader: 'vue-loader'
}
四、插件的使用
1.
plugins: [
new webpack.BannerPlugin('This file is created by pcd')
]
生成文件的顶部会出现这句话"This file is created by pcd".
2.在package.json中加入
"scripts": {
"dev": "BUILD_DEV=1 webpack-dev-server --progress --colors",
"build": "BUILD_PRERELEASE=1 webpack -p"
}
开发
npm run dev
发布
npm run build
一下贴出我在vue.js简单配置的代码
webpack.config.js
var webpack = require('webpack')
module.exports = {
entry: [
'./src/main.js'
],
output: {
/* path: __dirname + "/dist/js",
publicPath: __dirname + "/dist/", *///也可以使用gulp下定义文件的路径
filename: "app.js"
},
watch: true,
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel'
},
{
test: /\.(png|jpg)$/,
loader: 'url-loader?limit=8192'
},
{
test: /\.vue$/,
loader: 'vue'
}
]
},
babel: {
presets: ['es2015'],
plugins: ['transform-runtime']
},//为了支持mian.js中的import的ES6的语法
plugins: [
new webpack.BannerPlugin('This file is create by aaa')
]
}
gulpfile.js
var gulp = require('gulp');
var webpack = require('webpack-stream');
var connect = require('gulp-connect');
gulp.task('webpack', function() {
return gulp.src('src/main.js')
.pipe(webpack(require('./webpack.config.js')))
.pipe(gulp.dest('dist/js/'))
.pipe(connect.reload());
});
gulp.task('webserver', function() {
connect.server({
livereload: true,
root: 'dist'
});
});
gulp.task('build.index', function(){
return gulp.src('index.html')
.pipe(gulp.dest('./dist'));
});
gulp.task('default', ['webpack', 'webserver','build.index']);
webpack如何与gulpfile联合的使用的更多相关文章
- gulp入门学习
一.gulp简介 gulp是一个自动化构建工具.在开发过工程中,能够使用gulp对项目进行自动构建,大大提高工作效率. 二.安装gulp 在安装gulp之前先要确认已经正确安装了node.js,然后在 ...
- webpack 5 模块联合
webpack 5 模块联合 webpack 5 https://webpack.docschina.org/concepts/module-federation/ https://github.co ...
- gulp + webpack + sass 学习
笔记: new webpack.optimize.CommonsChunkPlugin 核心作用是抽离公共代码,chunks:['index.js','main.js'] 另一个作用就是单独生成一个j ...
- 做一个gulp+webpack+vue的单页应用开发架子
1.目标 最近项目上的事情不多,根据我自己的开发习惯,决定开发一些简单的开发架子,方便以后事情多的时候直接套用.本文讲的一个gulp+webpack+vue的单页应用架子,想要达到的目的: 可以通过命 ...
- webpack入门——webpack的安装与使用
一.简介 1.什么是webpack webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. ...
- 前端构建工具的用法—grunt、gulp、browserify、webpack
随着前端项目的飞速发展,项目越来越大.文件越来越多,前端工程化的工具也越来越多.下面介绍目前最流行的四种构建工具——grunt.gulp.browserify.webpack 所有的构建工具都是基于N ...
- [转]webpack
什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...
- 基于webpack和vue.js搭建开发环境
前言 在对着产品高举中指怒发心中之愤后,真正能够解决问题的是自身上的改变,有句话说的好:你虽然改变不了全世界,但是你有机会改变你自己.秉承着“不听老人言,吃亏在眼前”的优良作风,我还是决定玩火自焚. ...
- 学习 React(jsx语法) + es2015 + babel + webpack
视频学习地址: http://www.jtthink.com/course/play/575 官方地址 https://facebook.github.io/react/ 神坑: 1.每次this.s ...
随机推荐
- debian8安装Odoo中的Barcode Scanner Hardware Driver模块时,提示没有evdev
解决方法: $ apt-get install python-dev python-pip gcc $ apt-get install linux-headers-$(uname -r) $ sudo ...
- wpf TreeView
<Window x:Class="WpfTutorialSamples.TreeView_control.TreeViewDataBindingSample" ...
- 模拟搭建Web项目的真实运行环境(四)
本篇介绍如何部署mongodb环境,主要分为三个部分: 第一部分 介绍如何在ubuntu下安装mongodb, 第二部分 介绍如何在windows下安装使用MongoChef客户端, 第三部分 介绍在 ...
- Android版本与api Level
Platform Version API Level VERSION_CODE Notes Android 4.4 19 KITKAT Platform Highlights Android 4.3 ...
- python之模块
模块即一推代码的集合来实现某个功能,使用时直接调用,甚是方便. 模块又分为三种 自定义模块 内置模块 第三方模块 下面就来介绍介绍什么是内置模块及如何去使用它和内置模块的好处. 使用模块模块前首先导入 ...
- Delphi的Trim函数
三个Trim函数简介 函数原型 function Trim(const S: string): string; 将字符串前后的空白及控制字元清掉. 注意Trim函数只能清掉字符串前后的空格及控制字元, ...
- 小书翻译完成,分享啦--《用Python操作大数据[MapReduceHadoop和Spark]》
http://files.cnblogs.com/files/aguncn/%E7%94%A8Python%E6%93%8D%E4%BD%9C%E5%A4%A7%E6%95%B0%E6%8D%AE%5 ...
- 【转】Android 底层开发的几点
我干了3年Android sdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径.根据前辈的经验,Android底层完全入门需要两年. 先说下我的入门过程:第零步,下载源码,我下的 ...
- 传参数应该用哪种形式——值、引用、指针?
类型:C++ & Qt4,创建时间:十二月 30, 2011, 7:43 p.m. 标题无"转载"即原创文章,版权所有.转载请注明来源:http://hgoldfish.c ...
- OpenCV特征点检测------ORB特征
OpenCV特征点检测------ORB特征 ORB是是ORiented Brief的简称.ORB的描述在下面文章中: Ethan Rublee and Vincent Rabaud and Kurt ...