browserify 不打包某些文件或者把公共文件提取出来教程
var gulp = require('gulp')
var fs = require("fs")
var babelify = require('babelify')
var browserify = require('browserify')
var rename = require('gulp-rename')
var uglifyjs = require('gulp-uglifyjs')
var vendors = ['react','react-dom','jquery'];//定义不打包到js文件中的模块,或者vender公共模块
gulp.task('es2015', () => {
browserify({
entries: ['./src/main.js'],
extensions: ['.js', '.jsx'],
debug: true
})
.external(vendors) //这个功能就是排除打包某些模块的
.transform(["babelify", {
babelrc: false,
presets: ['es2015', 'es2016', 'es2017', 'stage-0', 'react'],
plugins: ['transform-decorators-legacy']
}])
.bundle()
.pipe(fs.createWriteStream("bundle.js"));
})
gulp.task('vender', () => {
var bf = browserify({
debug: true
});
vendors.forEach(lib => {
bf.require(lib); //这里require公共模块,下面将额外打包vender的模块
});
bf.transform(["babelify", {
babelrc: false,
presets: ['es2015', 'es2016', 'es2017', 'stage-0', 'react'],
plugins: ['transform-decorators-legacy']
}])
.bundle()
.pipe(fs.createWriteStream("vender.js"));
})
gulp.task('uglifyjs', () => {
gulp.src('./bundle.js')
.pipe(uglifyjs())
.pipe(rename('bundle.min.js'))
.pipe(gulp.dest('./dist'))
})
gulp.task('default', () => {
gulp.run('vender');
gulp.watch('./src/**/*.js', () => {
gulp.run('es2015')
})
})
browserify 不打包某些文件或者把公共文件提取出来
这里重点的方法就是external,至于写法就按上面那样。
另外,你要让没打包那些模块的程序能够正常运行,就需要额外打包一个公共模块的js文件。或者你在程序中不要import模块,直接接口用着,这样你额外再链接进来那个插件也可以使用。
比如:
$(()=>{
console.log('start===')
})
$ 是jquery接口,和jquery接口一模一样,这样你依然可以在有链接入jquery插件的文档里正常运行程序。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="app"></div>
</body>
<!-- <script type="text/javascript" src='./vender.js'></script>
<script type="text/javascript">
var $=require('jquery');
$(function(){
console.log('jjjjj')
})
</script> -->
<script type="text/javascript" src='./dist/jquery.min.js'></script>//jquery插件,确保$接口可以正常使用
<script type="text/javascript" src='./bundle.js'></script> //bundle.js 里面没有import jquery ,这样还是依然可以使用jquery的接口,和正常运行
</html>
browserify 不打包某些文件或者把公共文件提取出来教程的更多相关文章
- 公共文件模块include
首先新建一个include 把所有引入的文件放入公共文件里 function getBaseURL() { var pathName = window.document.location.pathna ...
- gulp批量打包文件并提取公共文件
gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器. browseriyf是模块化打包工具. 一般情况下,Browserify 会把所有的模块打包成单个文件.单个文件在大多数情况下是 ...
- webpack 打包出多个HTML文件,多个js文件,图片文件放置到指定文件夹中
一.webpack.config.js简单代码 const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { ...
- php读取excel,以及php打包文件夹为zip文件
1.把文件下载到本地,放在在Apache环境下2.d.xlsx是某游戏的服务器名和玩家列表,本程序只适合此种xlsx文件结构,其他结构请修改index.php源码3.访问zip.php的功能是把生成的 ...
- 【转】打包AAC码流到FLV文件
AAC编码后数据打包到FLV很简单.1. FLV音频Tag格式 字节位置 意义0x08, ...
- m文件转换为C/C++文件的编译、绘图、参数、打包问题总结
在工程计算相关项目中,常常利用Matlab来完成计算.算法.绘图等功能.使用Matlab来完成这些功能非常简单,Matlab提供的m编程语言功能强大,代码量少.为了在自己的C/C++项目中加入这些功能 ...
- thinkphp 的两种建构模式 第一种一个单入口里面定义两个模块,前台和后台,函数控制模块必须function.php前台加载前台模块的汉书配置文件,后台加载后台模块的汉书配置文件,公共文件共用。第二种架构模式两个单入口文件,分别生成两个应用定义define。。。函数可以定义配置文件。。。。
thinkphp 的两种建构模式 第一种一个单入口里面定义两个模块,前台和后台,函数控制模块必须function.php前台加载前台模块的汉书配置文件,后台加载后台模块的汉书配置文件,公共文件共用. ...
- maven项目打包的时候,*Mapper.xml 文件会打不不进去解决办法
打包的时候,不同版本的 Eclipse 还有IDEA 会有打包打不进去Mapper.xml 文件,这个时候要加如下代码, 在<build> 标签内加入即可 <resources> ...
- [InstFiles]在Inno中打包隐藏和系统文件的头文件
本文来自:http://www.kngstr.com 简介: 一直以来,Inno的作者都没有提供打包隐藏文件和系统文件的功能. 但是,如果我们做批量打包,批量封装的时候,总会需要这样的功能,因为我们不 ...
随机推荐
- Day 37 视图、存储过程、触发器、函数、事物、锁
一 .存储过程 1 create view stu_view as select * from ren 视图:是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据 视图有 ...
- 持续集成--Jenkins--1
持续集成之Jenkins安装部署 1.安装JDK Jenkins是Java编写的,所以需要先安装JDK,这里采用yum安装,如果对版本有需求,可以直接在Oracle官网下载JDK. [root@l ...
- webpack 中的 chunk 种类
webpack 将 chunk 划分为三类: 入口 chunk.入口 chunk 包含 webpack runtime 和将要加载的模块. 普通 chunk.普通 chunk 不包含 webpack ...
- Ubuntu Nginx Ruby, Rails Mysql 安装
1. Nginx 安装 sudo apt-get install nginx 2. Ruby 安装 sudo apt-get install ruby 查看版本 ruby -v 3. Rails 安装 ...
- 导入导出Excel文件
搭建环境 先新建web project ,然后Add Struts Capabilties: 下载导入导出Excel所需的jar包: poi-3.8-20120326.jar包 : http:// ...
- 各种类型的Json格式化
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.R ...
- Python进行RSA安装加密
一.下载ez_setup.py(http://peak.telecommunity.com/dist/ez_setup.py) 二.用python解释执行它 (如使用IDLE打开该py文件,按F5解释 ...
- CentOS6.5把MySQL从5.1升级到5.6后,MySQL不能启动
解决了:进入mysql安装目录 cd /var/lib/mysql删除了如下三个文件:ibdata1 ib_logfile0 ib_logfile1 CentOS6.5把MySQL从5.1升级到5 ...
- <亲测>CentOS7中使用yum安装Nginx的方法
CentOS7中使用yum安装Nginx的方法 最近无意间发现Nginx官方提供了Yum源.因此写个文章记录下. 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了 ...
- Python error: Microsoft Visual C++ 9.0 is required 解决方案
换了新电脑,在使用python2.7 pip 安装ipython时,报错了 error: Microsoft Visual C++ 9.0 is required. Get it from http: ...