安全地包装JS文件,这样当它们连接在一起时,它们仍然可以工作


Safely wrap JS files so when they are concatenated they still work

我正在使用PHP连接几个JS和CSS文件。

CSS很好。然而JS会崩溃,但只有部分文件会崩溃。然后我停止添加这些文件,然后它们作为单独的文件再次工作。

有没有一种方法可以安全地包装每个文件的内容,以确保它不会损坏?而行动"单独"说话?

我尝试过一些图书馆来做这件事,但还没有找到足够可靠的东西,因此我选择了自制。

谢谢Jake

在大多数情况下,一些JS文件在文件末尾缺少;

我很确定这就是问题所在,请尝试在函数/s ;

之后添加

您可能遇到变量冲突的问题。您可以将每个文件的所有代码封装在它们自己作用域的IIFE中,以防止这种情况发生。

此外,请确保所有javascript文件的最后一行都有分号;

如果你有一个文件的结尾是这样的:

var foo

然后下一个文件开始如下:

var bar;

当它们连接在一起时,你就会有

var foovar bar;

这不是有效的javascript。

也许您可以尝试使用php将.js文件包装到函数闭包中?即

(function(){
  // file content
})();

我不确定您的特定文件是否会出现无法预测的问题,但您可以尝试