首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么browserify两次引入库?- Browserify

为什么browserify两次引入库?- Browserify
EN

Stack Overflow用户
提问于 2014-07-23 02:02:21
回答 1查看 210关注 0票数 0

我有一个使用browserify管理依赖项的Angular应用程序。我也在使用momentjs来处理我所有的时间。我有几个使用browserify构建的模块,但它不止一次引入momentjs,即使我使用external命令也是如此。这是我的代码。首先,我有一个包含所有共享库的基本模块:

代码语言:javascript
复制
require('angular');
require('angular-route');
require('moment');

下面是我用来在gulpfile.js中执行browserify的代码

代码语言:javascript
复制
browserify().require('./js/donor/donor-libs.js')
    .bundle()
    .pipe(source('donor-libs.js'))
    .pipe(gulp.dest('./build'));

这构建得很好,并且拥有我所期望的库,包括momentjs

现在,我将构建一个依赖于此模块的模块。本模块中使用了momentjs。下面是我用来构建模块的代码:

代码语言:javascript
复制
    browserify().require('./js/donor/history-module.js')
        .external('./js/donor/donor-libs.js')
        .bundle()
        .pipe(source(filename))
        .pipe(gulp.dest('./build'));

现在,当我查看我的build目录时,在donor-libs.js和我的history-module.js中都有momentjs。为什么它不能识别出我的donor-libs.js中已经有了momentjs所需的?我需要做什么才能只需要在第三方库中使用一次?我对external命令有什么不理解的地方?

EN

回答 1

Stack Overflow用户

发布于 2014-07-24 01:30:08

库被多次拉取的原因是external命令使用不当。external需要external化的路径或路径数组。external不会查看js文件并找到required文件,然后不会在其他模块中提取它们。代码应该看起来像这样

代码语言:javascript
复制
.external('angular', 'angular-route', 'moment')

required库的路径。这将使这些文件外部化,并解决库被多次拉入的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24894569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档