如何防止JavaScript在构建过程中破坏?

时间:2012-05-10 21:22:51

标签: javascript build-automation

我正在开发一个PHP类,它接受我的JS资产并构建一个缩小的连接版本到一个脚本文件,其中所有资产都已准备好生产。我唯一担心的是它可能会破坏某些东西。例如,如果构建在需要之后连接文件(例如,jQuery插件之后的jQuery核心)。我打算这是最自动的(我正在考虑阅读脚本目录),但这可能会导致一些问题。

我也看到了Buildr,这似乎是一个很好的解决方案。它做同样的事情,构建它在目录中的所有内容,但也许它有同样的问题?

任何解决方案?有点像为此包装JS代码吗?

2 个答案:

答案 0 :(得分:1)

你为什么担心串联命令?实际上(例如jQuery)在文件中正确定义了,它们连接的顺序并不重要(假设它们构成一个文件)。这是因为Javascript允许您在当前文件中运行尚未评估解释器的代码。相反,任何未解析的符号在被调用时都会在全局对象中被查找(这可能是在解析代码之后发生的)

请考虑以下事项:

dosomething();

function dosomething(){
 console.log('yup');
}
在调用之前没有评估过dosomething,但解释器仍然可以看到它。

答案 1 :(得分:0)

您需要的是依赖管理。您的一种可能性是使用Google Closure Compiler。它在您压缩脚本时提供依赖性检测(See this)。但是,为了使其正常工作,您需要使用他们的库,如果您正在使用尺寸合适但尚未使用它的项目,这可能很烦人。