在NodeJS中修改HTML文件

让我先说两件事。 我目前正在使用咕噜声来处理这些任务,而且我也知道我有什么要求。 我真的很喜欢Yeoman,但是对于我正在开发的这个特定项目,我只是有点太自以为是。

所以我有以下的HTML文件:

<html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title></title> <meta name="description" content=""> <meta name="viewport" content="width=device-width"> <!-- START-CSS-MIN:css/build/min.css --> <link rel="stylesheet" href="css/bootstrap/bootstrap-2.1.1.css"> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/boilerplate.css"> <!-- END-CSS-MIN --> <!-- START-JS-MIN:js/build/modernizr.js --> <script src="js/libraries/modernizr.js"></script> <!-- END-JS-MIN --> </head> <body> <!--[if lt IE 7]> <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p> <![endif]--> <p>Hello world! This is a basline HTML5 template (based on HTML5 Boilerplate).</p> <!-- START-JS-MIN:js/build/libraries.js --> <script src="js/libraries/underscore.js"></script> <script src="js/libraries/jquery/jquery.js"></script> <!-- END-JS-MIN --> </body> </html> 

现在你可以看到CSS-MIN和JS-MIN的评论。 现在我已经有一个自定义的grunt构build任务,正确地收集评论中的所有文件(使用htmlparser),然后根据评论直接缩小和连接它们。 构build过程的最后一步是创build一个新版本的HTML文件(用于生产用途),用新文件replace注释。 例如,上面的代码将会变成这样:

 <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title></title> <meta name="description" content=""> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" href="css/build/min.css"> <script src="js/build/modernizr.js"></script> </head> <body> <!--[if lt IE 7]> <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p> <![endif]--> <p>Hello world! This is a basline HTML5 template (based on HTML5 Boilerplate).</p> <script src="js/build/libraries.js"></script> </body> </html> 

我的问题是如何能够在NodeJS中做到这一点? htmlparser NPM模块非常适合parsingHTML,但是现在我需要修改HTML(在特定位置删除和添加某些元素)。 有什么好的包/教程如何在NodeJS代码中做到这一点?

我不太确定这是否对评论行有帮助,但这应该不是DOM解决的问题。

考虑使用: https : //github.com/tmpvar/jsdom

还有其他的select。 (https://github.com/joyent/node/wiki/modules&#xFF09;