【问题标题】:Avoid bundling specific modules with Browserify避免使用 Browserify 捆绑特定模块
【发布时间】:2016-03-22 07:18:21
【问题描述】:

我有一个这样的依赖树:

index.js
      \__ A
      \__ B
          \__ C
          |   \__ D
           \__ E

我想捆绑 index.js 并且效果很好:browserify --node index.js -o bundle.js

问题是当依赖项之一具有依赖项时。假设它是 D,它具有本机依赖项(C++ 代码)。

我想使用npm install D 手动安装它,并使bundle.js 真正需要它来自磁盘,而不是来自bundle.js 代码。

如何从捆绑包中排除 D 模块并使捆绑包从 node_modules 中需要它?

我尝试使用--ignore D,但它在需要时返回一个空对象。

我怎样才能require 来自node_modules 目录的真正模块(就像Node 的require 那样?

【问题讨论】:

  • 这样做有什么意义?
  • @Vohuman 基本上我有一些不是真正公开的,我想创建一个包含所有这些代码的 babelified 和缩小包。但是代码是针对服务器端的(这就是我使用--node 标志的原因)。我只想忽略作为或使用本机依赖项的D 模块并使用npm install 安装它。是不是清楚一点?

标签: javascript node.js browserify


【解决方案1】:

--exclude 选项与--node 一起使用:

browserify --node -s GlobalVariable your-script.js -o bundle.js --exclude some-dependency

这将创建 bundle.js 文件,如果没有 CommonJS 环境,该文件将定义 GlobalVariable 变量。

--node 是一个方便的选项,如果您想在 Node 中而不是在浏览器中运行包。

--exclude 选项将从输出包中排除 some-dependency 模块。

查看Browserify Usage 部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2018-05-27
    • 2015-06-13
    • 2020-09-02
    • 2015-07-28
    • 2017-12-21
    • 2021-08-31
    相关资源
    最近更新 更多