【问题标题】:Exclude underscore from a project that uses it (browserify)从使用它的项目中排除下划线(浏览器)
【发布时间】:2015-06-07 09:33:12
【问题描述】:

我正在尝试使 npm 项目与 browserify 兼容。该项目的依赖项之一是下划线。我想让 browserify 构建该项目而不在目标文件中包含下划线,所以我在我的 grunt 配置中使用它:

options: {
    exclude: {
        'underscore'
    }
}

这使得目标文件更小(+/- 下划线的大小),但是当我尝试在浏览器中运行项目时,我得到了:

Uncaught Error: Cannot find module 'underscore'

请注意,即使我在包含我的项目之前包含了underscore(带有<script> 标签),我也会得到这个

如何让 browserify 理解下划线将由我从外部加载?

【问题讨论】:

  • 您确定您得到的Uncaught Error 是在排除选项中包含underscore 的结果吗?另外,您在哪里使用自定义模块以及您使用什么文件路径在项目中包含 underscore
  • 你还在requireing下划线吗?如果是这样,那就是问题所在。如果您通过<script> 标签自己加载它,您将只能通过_ 全局变量访问它。
  • @SamHolmes 我完全确定。当我评论“排除下划线”时,dist.js 文件再次开始工作。捕获的错误来自dist.js,而不是来自我尝试使用该模块的代码。
  • @JimO'Brien 我唯一需要的是我的模块。 dist.js 内部需要下划线。一定有办法告诉browserify下划线其实是_,但我不知道怎么做。
  • 我会考虑在 browserify 上使用--standalone mode,并尝试使用内联的外部模块加载器。也就是说,如果您只想缩小输出包的大小,我会改用lodash,并且只需要您需要的各个功能(请参阅该页面上的安装部分)。

标签: javascript gruntjs npm browserify


【解决方案1】:

不过那比我容易。我只需要用ignore 替换exclude。 Browserify 会处理其他所有事情 :)

【讨论】:

    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 2022-01-15
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多