相关疑难解决方法(0)

如何单独捆绑供应商脚本并根据需要使用Webpack?

我正在尝试做一些我认为应该可行的事情,但我真的无法理解如何从webpack文档中做到这一点.

我正在编写一个包含多个模块的JavaScript库,这些模块可能相互依赖或不相互依赖.最重要的是,jQuery被所有模块使用,其中一些可能需要jQuery插件.然后,该库将用于几个可能需要部分或全部模块的不同网站.

定义我的模块之间的依赖关系非常简单,但定义他们的第三方依赖关系似乎比我预期的更难.

我想要实现的目标:对于每个应用程序,我希望有两个捆绑文件,一个包含必要的第三方依赖项,另一个包含我库中的必要模块.

示例:假设我的库具有以下模块:

  • a(需要:jquery,jquery.plugin1)
  • b(要求:jquery,a)
  • c(要求:jquery,jquery.ui,a,b)
  • d(需要:jquery,jquery.plugin2,a)

我有一个应用程序(将其视为唯一的条目文件),需要模块a,b和c.此案例的Webpack应生成以下文件:

  • 供应商包:使用jquery,jquery.plugin1和jquery.ui;
  • 网站包:模块a,b和c;

最后,我更喜欢将jQuery作为全局文件,因此我不需要在每个文件上都需要它(例如,我只需要在主文件上使用它).并且jQuery插件只是在需要时扩展$ global(如果它们可用于不需要它们的其他模块则不是问题).

假设这是可能的,那么这个案例的webpack配置文件的例子是什么?我在我的配置文件上尝试了几种加载器,外部和插件的组合,但我并没有真正了解他们正在做什么以及我应该使用哪些.谢谢!

javascript external-dependencies webpack

165
推荐指数
4
解决办法
11万
查看次数

使用Webpack将jQuery暴露给真正的Window对象

我不想将jQuery对象暴露给可在浏览器中的开发人员控制台中访问的全局窗口对象.现在在我的webpack配置中,我有以下几行:

plugins: [
                new webpack.ProvidePlugin({
                    $: 'jquery',
                    jQuery: 'jquery'
                })
            ]
Run Code Online (Sandbox Code Playgroud)

这些行将jQuery定义添加到我的webpack模块中的每个文件中.但是,当我构建项目并尝试在开发人员控制台中访问jQuery时,如下所示:

window.$;
window.jQuery;
Run Code Online (Sandbox Code Playgroud)

它说这些属性是未定义的......

有没有办法来解决这个问题?

javascript jquery webpack

102
推荐指数
5
解决办法
6万
查看次数

Webpack和外部库

我正在尝试使用webpack(http://webpack.github.io/)并且它看起来非常好,但是我有点被困在这里.

假设我正在使用CDN作为库,f.ex jQuery.然后在我的代码中,我希望require('jquery')自动指向全局jquery实例,而不是尝试从我的模块中包含它.

我尝试过使用类似的插件IgnorePlugin:

new webpack.IgnorePlugin(new RegExp("^(jquery|react)$"))
Run Code Online (Sandbox Code Playgroud)

这适用于忽略库,但它仍然表示当我运行webpacker时所需的模块"丢失".

不知怎的,我需要告诉webpack jquery应该从全局上下文中获取.看起来像一个常见的用例,所以我很惊讶文档没有具体针对这一点.

javascript require commonjs webpack

48
推荐指数
1
解决办法
7万
查看次数