我正在构建一个需要少量前端lib / frameworks的应用程序,例如:
我正在bower
下载组件。此时,我的HTML看起来像:
<script src="components/jquery/jquery.js"></script>
<script src="components/angular/angular.js"></script>
<script src="components/etc/etc.js"></script>
我的目标是制作一个grunt
脚本,该脚本自动获取已安装的组件,合并并缩小它们并将它们输出为lib.js
。
问题:
通过所有的研究,我弄清楚了如何从目录中合并所有文件。我在这里的目标是获取Bower组件并合并它们,而不在gruntfile中一一列出。我该如何归档?
也可以仅使用我想要的模块而不是整个UI来html" target="_blank">构建自定义jQuery UI。
谢谢。
“我的目标是获取凉亭组件并合并它们,而不在gruntfile中一一列出”
您可以从依赖项目录和子目录中获取所有javascript文件,并通过这种方式进行合并:
grunt.config('concat.mydeps', {
files: [{
src: ['components/**/*.js'],
dest: 'dist/lib.js'
}]
})
…但是,如果脚本执行的顺序很重要,这就是灾难的根源:-)。
另外,这些文件夹很可能包含缩小版和非缩小版,导致您两次包含一些脚本…
避免这种副作用的一种方法是:
grunt.config('concat.mydeps', {
files: [{
src: ['components/**/*.js', '!components/**/*min.js'],
dest: 'dist/lib.js'
}]
})
…但是,这当然不是防弹的-给定的组件很可能具有构建的版本,并且旁边有分离的源。
恕我直言,唯一明智的方法是按照所需的顺序显式列出要聚合的文件(就像您现在在html中所做的那样)。
问题内容: 我尝试在Mac上安装twitter bower,然后使用 然后我尝试了,输出是。这是为什么? 问题答案: 就像这个问题(npm全局路径前缀)一样,您所需要做的就是设置适当的值。 UNIX: Windows和NVM: 然后应位于您的。
问题内容: 有人可以指出以下更有效的版本吗 每个变量都是一个字节片,大小不一 : 码: : 基准测试结果: 问题答案: 如果已经分配了内存,则x = append(x,a …)的序列在Go中非常有效。 在您的示例中,初始分配(制造)的成本可能比附加序列的成本高。这取决于字段的大小。考虑以下基准: 在我的盒子上,结果是: 系统地重新分配缓冲区(甚至是很小的缓冲区)会使此基准测试速度至少慢5倍。 因此
concat 方法 连接两个或多个数组。 语法: arrayObject.concat( Array2, Array3, ...... ArrayN ); 参数说明: ArrayN - 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。 返回值: 返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat()操作的参
concat 方法 连接两个或多个字符串。 语法: stringObject.concat( str, str, str, ... str ); 参数说明: str - 必需。将被连接为一个字符串的一个或多个字符串对象。 说明: concat() 方法将把它的所有参数转换成字符串,然后按顺序连接到字符串 stringObject 的尾部,并返回连接后的字符串。请注意,stringObject
描述 (Description) Javascript数组concat()方法返回一个由此数组组成的新数组,该数组与两个或多个数组连接。 语法 (Syntax) concat()方法的语法如下 - array.concat(value1, value2, ..., valueN); valueN - 要连接到结果数组的数组和/或值。 返回值 (Return Value) 返回数组的长度。 例子
concat()方法返回一个由此数组组成的新数组,该数组与两个或多个数组连接。 语法 (Syntax) array.concat(value1, value2, ..., valueN); 参数 (Parameters) valueN - 要连接到结果数组的数组和/或值。 返回值 (Return Value) 返回一个新数组。 例子 (Example) var alpha = ["a", "b"