我想知道在构建过程中缩小和连接所有js脚本的最佳方法是什么。我有实际的缩小工作,但现在需要在我的html页面中设置一个缩小文件的引用。在开发版本中,它引用了五个连接起来的文件。我应该juts xkepoke或类似的东西吗?是否有更优雅的技术?
答案 0 :(得分:3)
我通常使用的方法是将所有文件连接起来,使用yui缩小:
<target name="compress-js" unless="disable.js.compression">
<java fork="true" spawn="true" jar="tools/yuicompressor-2.3.6/yuicompressor-2.3.6.jar">
<arg value="-o" />
<arg value="${js.home}/lib/lib.js" />
<arg value="${js.home}/lib/lib.js" />
</java>
</target>
然后只有一个引用压缩文件的头,并在dev中使用disable.js.compression,这样你的文件就不会被压缩。
答案 1 :(得分:0)
在包含脚本文件的文件中,执行此操作(使用您使用的服务器端技术)
<%
if (@IS_DEV@){
%>
<script src="file1"></script>
...
<script src="file5"></script>
<%
} else {
%>
<script src="@MINIFIED_FILE_PATH@"></script>
<%
}
%>
然后在构建文件中使用“替换”ant目标(假设你使用ant)来替换@ IS_DEV @和@MINIFIED_FILE_PATH @
<replace file="yourfile.jsp" token="@IS_DEV@" value="${IS_DEV}"/>
<replace file="yourfile.jsp" token="@MINIFIED_FILE_PATH@" value="${YOUR_MINIFIED_FILE_PATH}"/>
答案 2 :(得分:0)
您可以使用Buildr
在项目的根目录中创建一个package.json
文件,使其看起来像这样:
{
"name": "My Project Name",
"buildr": {
"compress": {
"js": true,
"css": true,
"img": false
},
"bundle": {
"js": true,
"css": true
},
"directories": {
"out": "./scripts/compressed",
"src": "./scripts/uncompressed"
},
"files": {
"js": true,
"css": true,
"img": false
}
}
}
然后运行:
buildr
上面将压缩并将./scripts/uncompressed
目录中的所有css和js文件捆绑到./ scripts / compressed`目录。
更新:更正了GitHub上Buildr的URL。