Webpack ProvidePlugin 与外部插件?

2024-02-23

我正在探索使用的想法Webpack http://webpack.github.io/ with 骨干网.js http://backbonejs.org/.

我已经遵循了快速入门指南,并且对 Webpack 的工作原理有了大致的了解,但我不清楚如何加载 jquery/backbone/underscore 等依赖库。

它们是否应该从外部加载<script>或者这是 Webpack 可以像 RequireJS 的 shim 一样处理的东西?

根据webpack 文档:匀场模块 http://webpack.github.io/docs/shimming-modules.html, ProvidePlugin and externals似乎与此有关(也是如此bundle!加载器某处)但我不知道何时使用哪个。

Thanks


两者都是可能的:您可以包含带有<script>(即使用 CDN 中的库)或将它们包含到生成的包中。

如果您通过加载它<script>标签,您可以使用externals允许写入的选项require(...)在你的模块中。

来自 CDN 的库示例:

<script src="https://code.jquery.com/jquery-git2.min.js"></script>

// the artifial module "jquery" exports the global var "jQuery"
externals: { jquery: "jQuery" }

// inside any module
var $ = require("jquery");

捆绑包中包含库的示例:

copy `jquery-git2.min.js` to your local filesystem

// make "jquery" resolve to your local copy of the library
// i. e. through the resolve.alias option
resolve: { alias: { jquery: "/path/to/jquery-git2.min.js" } }

// inside any module
var $ = require("jquery");

The ProvidePlugin可以将模块映射到(自由)变量。所以你可以定义:“每次我使用(自由)变量xyz在你(webpack)应该设置的模块内xyz to require("abc")."

没有的例子ProvidePlugin:

// You need to require underscore before you can use it
var _ = require("underscore");
_.size(...);

示例为ProvidePlugin:

plugins: [
  new webpack.ProvidePlugin({
    "_": "underscore"
  }) 
]

// If you use "_", underscore is automatically required
_.size(...)

Summary:

  • CDN 中的库:使用<script>标签和externals option
  • 来自文件系统的库:将库包含在捆绑包中。 (也许修改resolve查找库的选项)
  • externals:使全局变量可用作模块
  • ProvidePlugin:使模块可作为模块内的自由变量
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webpack ProvidePlugin 与外部插件? 的相关文章

随机推荐

  • 如何在 C# 中为控件添加移动效果?

    我的 C 表单中有一个面板 并且有一个按钮 当我单击按钮时 会显示不可见的面板 相反 我希望面板移入或滑入 例如 当您单击组合框时 下拉列表不会弹出 我希望我的面板像那样显示 我怎样才能做到这一点 窗口动画是 Windows 的内置功能 这
  • 无法传入 lambda 来申请 pandas DataFrame

    我正在尝试将函数应用于 pandas DataFrame 的所有行 实际上只是该 DataFrame 中的一列 我确信这是一个语法错误 但我知道我做错了什么 df col apply lambda x y x y total seconds
  • CLR 项目的智能感知 - 例如没有智能感知系统.Windows.窗体

    我一直在关注一些关于某些内容的两个教程Visual C 基础知识 http www functionx com vccli general introprogramming htm但他们似乎都缺乏有关我如何在 Visual Studio 2
  • Google AppInvites 中断构建

    您的应用程序的一部分build gradle这是 tasks withType com android build gradle tasks PackageApplication pkgTask gt pkgTask jniFolders
  • 如何在v-html中运行脚本

    我从数据库获取嵌入代码 Instagram Twitter 等 如何将它们绑定到 vue 组件 有没有办法在v html中执行脚本标签 简短的回答 你不能 一旦 dom 加载 您的浏览器就会阻止脚本标签的执行 长答案 您可以尝试匹配脚本的
  • 如何保留对 NPM 模块所做的本地更改?

    我已经使用 NPM 拉下了一个节点模块 并将其添加到package json 然而 需要更改模块的一些代码 因为它没有 100 满足我的要求 通常当我使用节点时git我会忽略node modules目录及使用npm install部署到服务
  • CSS - 并排的内联块,宽度为 100%

    我有两个带有文本的块 文本的长度不是恒定的 用户输入 左侧块中包含短文本 但右侧块可能包含非常长的文本 这些块应该并排出现 并且分布在父级恒定宽度的 100 上 不多也不少 简化示例 https jsfiddle net hh6a03cy
  • 在恒定空间和线性时间内向后打印单链表

    我听到一个面试问题 向后打印单链表 在恒定空间和线性时间中 我的解决方案是反转链接列表 然后像这样打印它 还有其他非破坏性的解决方案吗 您已经找到了大部分答案 将链表反转到位 然后将列表遍历回开头以打印它 为了防止它 永久 破坏性 请就地反
  • AtomicBoolean 与同步块

    我试图通过替换一些来减少代码中的线程争用synchronized块与AtomicBoolean 这是一个例子synchronized public void toggleCondition synchronized this mutex i
  • Subversion 和 CVS 中添加自动内容的标签怎么称呼?

    像 log and version 在签入文件时添加数据 我有兴趣查看其他人以及他们可以提供哪些信息 但除非我知道他们叫什么 否则我无法获得太多信息 Subversion 和 CVS 都称它们为Keywords 在这里查看 SVN 手册 h
  • 窗口函数过滤当前行

    这是后续this https stackoverflow com questions 48000013 optimize slow aggregates in lateral join问题 我的查询被改进为使用窗口函数而不是内部的聚合LAT
  • 你如何制作一个makefile

    我想知道如何为 Unix 创建 makefile 这里有一个好的生成文件教程 http oucsace cs ohiou edu bhumphre makefile html 搜索 如何创建 makefile 后 Google 上的第一个结
  • 修复 Chocolatey“访问被拒绝”的问题

    我刚刚第一次使用安装了 Chocolateythis https i stack imgur com fw9WX png管理员 cmd 中的命令 SystemRoot System32 WindowsPowerShell v1 0 powe
  • dlopen 中对 __dlopen 的未知引用

    dlopen位于libdl a但是当我将我的应用程序链接到libdl a gcc 链接器抛出此错误 unknow reference to dlopen called in dlopen 我应该导入另一个吗 a 当我尝试静态编译时dlope
  • C 将输入文本文件解析为单词

    我正在尝试将输入文件 包含具有多行和分隔符的文本文档 即 解析为单词 我的函数 分割函数 是 int splitInput fp int i 0 char line 255 char array 5000 int x while fgets
  • Java Lambda:迭代 2 个暗淡数组并保持当前索引

    我是 Java 8 的 Lambda 表达式的新手 我想制定以下内容 我有一个二维数组 我想在应用程序代码中对其进行多次迭代 并对数组中的项目进行处理 在我执行以下操作之前 public static abstract class BlaB
  • 将 std::bind 的结果传递给 std::function “重载”

    我有类似的问题在 C 中将不同的 lambda 传递给函数模板 https stackoverflow com questions 40523248 passing different lambdas to function templat
  • 闭包编译器对命名空间枚举发出警告

    以下示例代码生成有关高级优化的编译器警告 JSC UNSAFE NAMESPACE 为命名空间 NS 创建的不完整别名 如果我删除 enum 注释 它不会发出警告 var NS enum string NS type FOO bar NS
  • 如何在 jupyter 笔记本中使用 pandas 分析时修复此错误

    每次我在不同的数据集中使用 pandas 分析时 笔记本都会显示此错误 IndexError 仅整数 切片 省略号 numpy newaxis None 且整数或布尔数组有效 指数 import pandas as pd df pd rea
  • Webpack ProvidePlugin 与外部插件?

    我正在探索使用的想法Webpack http webpack github io with 骨干网 js http backbonejs org 我已经遵循了快速入门指南 并且对 Webpack 的工作原理有了大致的了解 但我不清楚如何加载