webpack学习笔记(四)
1 webpack的垫片
举个例子,在main文件中引入jquery和doash两个库:
import $ from 'jquery';
import _ from 'lodash';
import { ui } from './jquery.ui.js';
ui();
对应的jquery.ui.js比如说是一个第三方库,很有可能是在 node_module中:
export function ui(){
$('body').css('background', _.join(['green'],''));
}
由于webpack打包是基于模块的,每个模块之间也是相互独立的,所以在main中引入的jquery 在 jquery.ui.js中无法使用的,故需要在webpack的配置文件中做一下操作:
import webpack from 'webpack'
{
plugins:[
new webpack.ProvidePlugin({
$:'jquery',
_:'lodash'
})
]
}
2 this指代window
因为默认的this是指向当前模块的,所以为了让this指向window,需要安装: npm install imports-loader --save-dev
webpack最初对js只有一个loader的时候:
{
module:{
rules:[
{
test:/\.js$/,
exclude:/node_modules/,
loader:'babel-loader'
}
]
}
}
而有多个loader的时候,使用下面方式:
{
module:{
rules:[
{
test:/\.js$/,
exclude:/node_modules/,
use:[{
loader:'babel-loader'
},{
loader:'imports-loader?this=>window'
}
]
}
]
}
}
这样对于js文件,先使用imports-loader把this指向了window 再使用babel-loader 编译js文件,莫要忘记babelrc配置文件。
3 环境变量
已知webpack的配置文件目录如下:
-build
-webpack.common.js
-webpack.dev.js
-webpack.prod.js
分别在dev和prod中使用了webpack-merge对配置文件进行的合并,在这里我们使用命令行中传入环境变量的形式,则dev和prod中只导出自己的配置项,不再引入merge:
此时comm.js中引入merge,如下所示:
const merge = require('webpack-merge');
const devConfig = require('./webpack.dev.js');
const prodConfig = require('./webpack.prod.js');
const commonConfig = {
entry:{},
output:{},
plugin:{},
module:{}
...
}
module.exports = (env) => {
if(env && env.production){
return merge( commonConfig ,prodConfig);
}else{
return merge( commonConfig ,devConfig);
}
}
对应的命令行配置中,config.json
{
"scripts":{
"dev":"webpack-dev-server --config ./build/webpack.common.js",
"build":"webpack --env.profuction --config ./build/webpack.common.js",//均运行common文件,并且定义了环境变量
}
}
webpack学习笔记(四)的更多相关文章
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
- 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
随机推荐
- python 全栈开发笔记 2
函数 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 函数式编程最重要的是增强代码的重用性和可读性 def xx() ...
- Ubuntu 18.04安装VNC远程登录
reference: https://blog.csdn.net/bluewhalerobot/article/details/73649353 https://community.bwbot.org ...
- 获取百度地图POI数据一(详解百度返回的POI数据)
POI是一切可以抽象为空间点的现实世界的实体,比如餐馆,酒店,车站,停车场等.POI数据具有空间坐标和各种属性,是各种地图查询软件的基础数据之一.百度地图作为国内顶尖的地图企业,其上具有丰富的POI数 ...
- 如何查看tomcat的支持的jdk、servlet、jsp的版本
解压servlet-api 查看 可以看出,支持的servlet版本是4.0,jdk是1.8
- linux install ftp server
first yum install vsftpd 第二部:vi /etc/vsftpd/vsftpd.conf 添上下面一段话 anonymous_enable=YESlocal_enable=YE ...
- C++面试笔记(3)
20. 浅拷贝与深拷贝 如何理解C++中的浅拷贝与深拷贝 深拷贝和浅拷贝 在进行对象拷贝时,当对象包含对其他资源的引用,如果需要拷贝这个独享所引用的对象,那就是深拷贝,否则就是浅拷贝 *** 21.构 ...
- linux之特殊字符
特殊字符: 与路径和位置有关的特殊字符: ~ 用户的家目录,超级用户为/root _ 用户(-) 代表上一次用户所在路径 .代表当前目录(. 还有很多其他含义) ..代表上一级目录 通配符 *匹配 ...
- TP5 数据库迁移工具 migrate 教程
第一步: 安装compose,不赘述,安装详情可百度或查看https://pkg.phpcomposer.com/#how-to-install-composer 第二步: 通过 composer ...
- 201771010141 周强《面向对象设计 java》第十五周实验总结
理论部分 ◼ JAR文件◼ 应用程序首选项存储◼ Java Web Start JAR文件: 1.Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar文件后,GUI界面程序就 ...
- Spring xml配置
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.s ...