Grunt - uglify不适用于具有不同文件夹条件的所有js文件

时间:2016-06-22 21:58:14

标签: gruntjs

我想要来自 dev->的所有js文件js 文件夹和 dev-> bootstrap-> js 应缩小为 build-> js 文件夹和构建 - > bootstrap-> js

我正在尝试使用以下代码,但这不起作用

uglify: {
	  build: {
		files: [{
			expand: true,
			src: '**/*.js',
			dest: ['build/js', 'build/lib/bootstrap/js'],
			cwd: ['dev/js', 'dev/lib/bootstrap/js']
		}]
	  }
	}

出现错误 -

$ grunt
Running "uglify:build" (uglify) task
Warning: Path must be a string. Received [ 'dev/js', 'dev/lib/bootstrap/js' ] Us                   e --force to continue.

Aborted due to warnings.

<pre>

// incoming

dev
  |js
  |lib
    |bootstrap
             |js


// output

build
  |js
  |lib
    |bootstrap
             |js

</pre>

1 个答案:

答案 0 :(得分:0)

如果你查看building the files object dynamically的grunt文档,你会发现以下定义:

  

dest目标路径前缀。

     

cwd所有src次匹配都相对于(但不包括)此路径。

这告诉我们dest必须是一个字符串,不是一个数组,它必须是所有编译文件所在的文件夹。在您的示例中,这是构建/文件夹。

其次,它告诉我们cwd是一个字符串,表示要在其下找到所有源文件的文件夹。此外,它告诉我们当src文件路径映射到dest文件路径时,将不会包含此文件夹前缀。在您的示例中,所有源文件都相对于dev /文件夹。

您的uglify:build任务的grunt配置应更新如下:

files: [{
    expand: true,
    cwd: 'dev/',
    src: '**/*.js',
    dest: 'build/'
}]