“ _.startsWith”来自何处?

时间:2019-12-11 20:54:58

标签: javascript gulp

我正在尝试从browserify-css回购中了解以下代码:

var gulp = require('gulp');
var gutil = require('gulp-util');
var path = require('path');
var browserify = require('browserify');
var sourceStream = require('vinyl-source-stream');
var fse = require('fs-extra');

var bundleStream = browserify()
    .add('src/index.js')
    .transform(require('browserify-css'), {
        rootDir: 'src',
        processRelativeUrl: function(relativeUrl) {
            var stripQueryStringAndHashFromPath = function(url) {
                return url.split('?')[0].split('#')[0];
            };
            var rootDir = path.resolve(process.cwd(), 'src');
            var relativePath = stripQueryStringAndHashFromPath(relativeUrl);
            var queryStringAndHash = relativeUrl.substring(relativePath.length);

            //
            // Copying files from '../node_modules/bootstrap/' to 'dist/vendor/bootstrap/'
            //
            var prefix = '../node_modules/';
            if (_.startsWith(relativePath, prefix)) {
                var vendorPath = 'vendor/' + relativePath.substring(prefix.length);
                var source = path.join(rootDir, relativePath);
                var target = path.join(rootDir, vendorPath);

                gutil.log('Copying file from ' + JSON.stringify(source) + ' to ' + JSON.stringify(target));
                fse.copySync(source, target);

                // Returns a new path string with original query string and hash fragments
                return vendorPath + queryStringAndHash;
            }

            return relativeUrl;
        }
    })
    .bundle();

bundleStream
    .pipe(sourceStream(bundleFile))
    .pipe(gulp.dest(browserifyConfig.dest));

我不了解该部分

_.startsWith(relativePath, prefix)

下划线来自哪里?它应该由任务运行程序以javascript执行。我发现在NodeJS REPL中,下划线字符输出最后执行的表达式的结果,但是该功能不能在脚本内使用。它也不是underscore.js实例,因为它没有在任何地方声明。 startsWith是String方法。

那我想念什么?

1 个答案:

答案 0 :(得分:3)

该代码正在使用lodash library。您可以在this section的自述文件中看到他们正在使用var _ = require('lodash');

导入lodash