webpack打包并将文件加载到指定的位置方法


Posted in Javascript onFebruary 22, 2018

使用webpack打包,最爽的事情莫过于可以直接require文件了,但是这

同时带来了一个问题,就是所有的文件整合到一起,那这一个包就太大了。

基于此:下面我们来了解下webpack的打包(主要是将如何将我们需要的内容模块,分开打包,

并且按照我们自己设定的存放路径进行存放)

首先在webpack.config.js文件中

entry入口函数出表示出哪些是需要单独打包成一个js包的:

entry: {
  main: path.resolve(__dirname,'src/index.js'),
  jq: ['jquery'],
  react: ['react'],
  redom: ['react-dom']
},
output: {
  path: path.resolve(__dirname,'dist'),
  publishPath: 'dist/',
  filename: '[name].js'
 },
plugin: [
  new webpack.optimize.CommonsChunkPlugin('jq','jq.js'),
  new webpack.optimize.CommonsChunkPlugin('vendors','vendors.js'),
  new webpack.optimize.CommonsChunkPlugin('redom','redom.js')
]

如上配置,这样在文件生成的时候dist目录下就会增加jq.js,vendors.js,redom.js这三个js了

以上解决了我们要打包多个包的问题;

那如果我们想要将打包好的js存放在指定的位置又要如何进行操作呢,不用着急,下面就来具体

的实现以下(其实区别主要是在entry入口函数那儿):

entry: {
  './common/main': path.resolve(__dirname,'src/index.js'),
  './jquery/jq': ['jquery'],
  './react/react': ['react'],
  './reactdom/redom': ['react-dom']
 },

如上所示这样四个js就会分别存放到我们制定的dist下的四个文件夹中了。(标注:这时候就不

需要用到webpack.optimize.CommonsChunkPlugin插件了)

最后贴上左右的webpack.config.js代码:

var webpack = require('webpack');
var path = require('path');
module.exports = {
 entry: {
  './common/main': path.resolve(__dirname,'src/index.js'),
  './jquery/jq': ['jquery'],
  './react/react': ['react'],
  './reactdom/redom': ['react-dom']
 },
 output: {
  path: path.resolve(__dirname,'dist'),
  publishPath: 'dist/',
  filename: '[name].js'
 },
 module: {
  loaders: [
   {
    test: /\.scss$/,
    loader: 'style!css!sass'
   },
   {
    test: /\.js$/,
    exclude: /node_modules|vue\/dist|vue-router\/|vue-loader\/|vue-hot-reload-api\/|presets\//,
    loader: 'babel'
   },
   {
    test: /\.(png|jpg|gif)$/,
    loader: 'url?limit=40000'
   }
  ]
 },
 babel: {
  presets: ['es2015','stage-0','react'],
  plugins: ['transform-runtime',["antd",{"style": "css"}]]
 },
 resolve: ['js','jsx','css'],
 plugins:[
  new webpack.ProvidePlugin({
   $:"jquery",
   jQuery:"jquery",
   "window.jQuery":"jquery"
  })
 // new webpack.optimize.CommonsChunkPlugin('jq','jq.js'),
 // new webpack.optimize.CommonsChunkPlugin('vendors','vendors.js'),
 // new webpack.optimize.CommonsChunkPlugin('redom','redom.js')
 ]
};

以上这篇webpack打包并将文件加载到指定的位置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
Sep 16 Javascript
基于JQuery实现的类似购物商城的购物车
Dec 06 Javascript
js实现简单计算器
Nov 22 Javascript
JS实现回到页面顶部动画效果的简单实例
May 24 Javascript
JS实现的简单图片切换功能示例【测试可用】
Feb 14 Javascript
详解angular 中的自定义指令之详解API
Jun 20 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
Vue一个案例引发的递归组件的使用详解
Nov 15 Javascript
vue实现微信分享功能
Nov 28 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 Javascript
vue2.0 elementUI制作面包屑导航栏
Feb 22 #Javascript
webpack将js打包后的map文件详解
Feb 22 #Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
Feb 22 #Javascript
深入理解ES6中let和闭包
Feb 22 #Javascript
vue+iview+less+echarts实战项目总结
Feb 22 #Javascript
在vscode中统一vue编码风格的方法
Feb 22 #Javascript
vue webpack打包优化操作技巧
Feb 22 #Javascript
You might like
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
go和python调用其它程序并得到程序输出
2014/02/10 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python实现单链表的方法示例
2019/09/03 Python
Django实现内容缓存实例方法
2020/06/30 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
优秀员工推荐信
2014/05/10 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS