关于 webpack external

引用UMD格式的包,

webpack.config.js 配置

externals: {    "./test1": "A",    "./test2": "B",},

生成的UMD格式的js开头都有这么一段

(function webpackUniversalModuleDefinition(root, factory) {   if(typeof exports === ‘object‘ && typeof module === ‘object‘)      module.exports = factory(require("A"), require("B"));   else if(typeof define === ‘function‘ && define.amd)      define(["A", "B"], factory);   else {      var a = typeof exports === ‘object‘ ? factory(require("A"), require("B")) : factory(root["A"], root["B"]);      for(var i in a)   (typeof exports === ‘object‘ ? exports : root)[i] = a[i];

   }})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) {

注意看红色的两段, this 指向是window对象
for(var i in a)   (typeof exports === ‘object‘ ? exports : root)[i] = a[i]; 这段就很好理解了  其实就把你require要引用的对象放到 window对象上 ,所有都对象都从window的属性取
require("A"), require("B")  到最后其实就是 window.A,window.B  而不会 是 根据moduleId取对象内的module-------------------------------普通模式的index.js 生成的代码更直接了,直接取window上下文的A,B属性
**/ function(module, exports) {

   module.exports = A;

/***/ },/* 2 *//***/ function(module, exports) {

   module.exports = B;

/***/ }/******/ ]);
时间: 2024-11-03 22:16:21

关于 webpack external的相关文章

VS.Net 2015 Update3 学习(1) 支持Webpack

让vs.net 编译的时候自动执行webpack 首先 管理员模式下打开 “Developer Command Prompt for VS2015", 是管理员模式啊! 然后进入 cd c:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External 执行:npm install webpack. 绝对不能带 -g 然后按照其他文章.写个webpack.config.js之类的 然后在Project.json 随便加你相加的东西就行

Webpack从入门到上线

webpack是目前一个很热门的前端打包工具,官网说得很清楚,webpack的出现就是要把requirejs干掉.同时它还提供了十分便利的本地开发的环境.网上并不容易找到一个讲解得比较详细完整的教程,本文结合实践经验,总结一套可用的开发和上线的配置和流程. 首先,Require JS有什么问题 RequireJs存在的问题 博主先是使用了RequireJs,后来又转了webpack,综合比较,requirejs确实存在一些缺点: 1.写法比较笨拙 需要把所有的依赖模块写在require函数里面,

Webpack 配置示例

Webpack 作为前端构建工具,对于大型网站开发,大大提升了开发效率.要使用webpack需要先安装webpack工具: 先来看一个最简单的命令 $ webpack main.js bundle.js 该命令将 main.js 输出到 bundle.js . 通常,都不会这样直接使用使用,而是在项目根目录下进行打包配置,配置文件默认为webpack.config.js. // webpack.config.js module.exports = { entry: './main.js', ou

webpack es6支持配置

Install Babel and the presets: npm install --save-dev babel-core babel-preset-es2015 Install babel-loader: npm install --save-dev babel-loader Configure Babel to use these presets by adding .babelrc { "presets": [ "es2015" ] } Modify w

webpack简介与使用

欢迎小伙伴们为 前端导航仓库 点star https://github.com/pfan123/fr...前端导航平台访问 CommonJS 和 AMD 是用于 JavaScript 模块管理的两大规范,前者定义的是模块的同步加载,主要用于 NodeJS :而后者则是异步加载,通过 RequireJS 等工具适用于前端.随着 npm 成为主流的 JavaScript 组件发布平台,越来越多的前端项目也依赖于 npm 上的项目,或者自身就会发布到 npm 平台.因此,让前端项目更方便的使用 npm

Wabpack系列:在webpack+vue开发环境中使用echarts导致编译文件过大怎么办?

现象,在一个webpack+vue的开发环境中,npm install echarts --save了echarts,然后在vue文件中直接使用 import echarts from 'echarts' 然后编译的时候加上了Uglify选项,发现vendor文件的大小已经达到了800多k,导致首次加载速度比较慢,然后我们这个是webapp,就更慢了. 所以考虑把echarts提取出来,改用cdn版本的echarts,具体操作步骤如下: (0)找到可用的echartscdn资源 在bootcdn

Webpack打包进阶

说在前面 由于使用了React直出,页面各项性能指标使人悦目.本篇将深入探讨目前PC部落所采用webpack打包优化策略,以及探讨PC部落并未使用的 webpack Code Splitting 代码分包.异步模块加载特性.看看它们又是如何对PC部落的性能起到进一步的催化作用. 为什么要使用webpack 如果你曾经使用过 Broserify, RequireJS 或类似的打包工具,并注重:代码分包.异步加载.静态资源打包(图片/CSS).那么 webpack 就是帮你构建项目的利器!简单一句话

Webpack的加载器

一.什么是加载器(loaders) loaders 用于转换应用程序的资源文件,他们是运行在nodejs下的函数 使用参数来获取一个资源的来源并且返回一个新的来源(资源的位置),例如:你可以使用loader来告诉webpack去加载less文件.sass文件.es的js文件等 二.loaders 特性 loaders可以串联,他们应用于管道资源,最后的loader将返回javascript,其它的可返回任意格式(传递给下一个loader) loaders 可以同步也可以异步 loaders在no

webpack处理非模块化的几方法

webpack处理非模块化文件有几方法,主要分为外链和webpack打包二种情况: 一.使用CDN外部链接的方法 官网文档External: https://webpack.github.io/docs/library-and-externals.html 如下示例是把微信的JSSDK和zepto使用外链的方法在页面上使用script引用,并导出别名 1 module.exports = { 2 entry: { 3 app: './src/main.js', 4 vendors: ['vue'