【发布时间】: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 上使用
--standalonemode,并尝试使用内联的外部模块加载器。也就是说,如果您只想缩小输出包的大小,我会改用lodash,并且只需要您需要的各个功能(请参阅该页面上的安装部分)。
标签: javascript gruntjs npm browserify