合并目录中的javascript文件与节点uglify + watch?

时间:2013-03-21 16:43:18

标签: node.js watch dust.js client-side-templating

目标:

我正在尝试为客户端模板开发构建一个轻松的工作流程。

Doc Root:

/views/uncompiled/
/static/js/compiled/

我们从/views/uncompiled/

开始

这是我可以构建内容的地方,比如/views/uncompiled/index.html

我正在构建 dust.js 模板,因此我正在使用 dusterjs 来监听我的/views/uncompiled/目录中的更改,并自动在我的*.js目录中渲染已编译的/static/js/compiled/对应项。

因此/views/uncompiled/index.html会在保存更改时随时呈现/static/js/compiled/index.js

问题:

我的layout.html越来越大了。每次添加另一个模板时,我都需要包含一个新的*.js脚本:

<head>
    <script src='/static/js/compiled/index.js'></script>
    <script src='/static/js/compiled/header.js'></script>
    <script src='/static/js/compiled/footer.js'></script>
    <script src='/static/js/compiled/baconstrips.js'></script>
    ...
</head>

解决方案:

使用/static/js/compiled/文件夹上的另一个手表,会自动将*.js连结到一个app.js,只要该文件夹的内容发生变化,该<head>将始终包含在我的<head> <script src='/static/js/app.js'></script> </head> 中:

{{1}}

问题:

我想使用像 Uglify.js 这样的连接工具,它也可以进行压缩。

  • 是否有任何节点包可以自动执行上述解决方案?
  • 是否有 Uglify.js 的原生功能?

1 个答案:

答案 0 :(得分:2)

使用grunt.js。它能够通过各种贡献模块观察/集中/缩小文件。需要一点点习惯(我仍然是我自己),但你最终会得到一个自定义构建过程,其工作方式希望它能够工作,这是无价的。