Node.js 在Grunfile中使用JavaScript库

Node.js 在Grunfile中使用JavaScript库,node.js,gruntjs,Node.js,Gruntjs,我是Grunt的新手,我正在尝试使用Grunt bower concat节点模块将我的所有bower组件分别合并到一个js文件和css文件中。它工作得很好,只是我想强制grunt bower concat使用我的bower组件的缩小版本,而不是未压缩的版本 幸运的是,它附带了一个我可以自定义的: callback: function(mainFiles, component) { return _.map(mainFiles, function(filepath) { // Use

我是Grunt的新手,我正在尝试使用Grunt bower concat节点模块将我的所有bower组件分别合并到一个js文件和css文件中。它工作得很好,只是我想强制grunt bower concat使用我的bower组件的缩小版本,而不是未压缩的版本

幸运的是,它附带了一个我可以自定义的:

callback: function(mainFiles, component) {
  return _.map(mainFiles, function(filepath) {
    // Use minified files if available
    var min = filepath.replace(/\.js$/, '.min.js');
    return grunt.file.exists(min) ? min : filepath;
  });
}
我把它添加到我的Grunfile文件中:

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        bower_concat: {
            all: {
                dest: "src/js/<%= pkg.name %>-bower.js",
                cssDest: "src/css/<%= pkg.name %>-bower.css",
                callback: function(mainFiles) {
                    return _.map(mainFiles, function(filepath) {
                        var min = filepath.replace(/\.js$/, '.min.js');
                        return grunt.file.exists(min) ? min : filepath;
                    });
                }
            }
        },
...
这个例子正在尝试使用,很明显Grunt没有访问这个库的权限


如何在GrunFile中加载下划线或使用下划线函数?

看起来您在任何地方都不需要下划线,除非您没有显示整个文件

要在其中使用下划线的任何文件都需要执行以下操作:

var\=require('下划线')

在使用之前


哦,当然,您需要
npm安装下划线--将
保存在gruntfile所在的文件夹中,以便将库保存在那里

看起来不需要下划线,除非您没有显示整个文件

要在其中使用下划线的任何文件都需要执行以下操作:

var\=require('下划线')

在使用之前


哦,当然,您需要
npm安装下划线--将
保存在gruntfile所在的文件夹中,以便将库保存在那里

不需要额外的库,只需更换

return _.map(mainFiles, function(filepath) {
为此:

return mainFiles.map(function(filepath) {

不需要额外的库,只需替换

return _.map(mainFiles, function(filepath) {
为此:

return mainFiles.map(function(filepath) {

就这样。谢谢,就这样。谢谢。这是真的,因为它帮助他使用
.map
,但它没有回答他如何加载或使用下划线功能的问题;这依赖于本机数组功能。@Paul我以为他问这个问题是因为他不知道映射数组不需要下划线。这很公平,你的回答当然满足了他的需要,如果不是他的明确问题的话。这是真的,因为它帮助他使用
.map
,但这并没有回答他如何加载或使用下划线功能的问题;这依赖于本机数组功能。@Paul我以为他问这个问题是因为他不知道映射数组不需要下划线。这很公平,你的回答当然满足了他的需要,如果不是他的明确问题的话。