2

我正在尝试能够将 Javascript 代码放在字符串中(在 Javascript 中)。我正在使用自己的 gruntjs 任务来读取所有 javascript 文件并将其放在字符串中。

var modules = []; modules['filename.js'] = "code here...."

这适用于简单的 Javascript 类,但是当以这种格式(JQuery、Ember.js、Underscore)放置外部库时,它将失败。我"将代码中的每个替换为\". 但我仍然遇到语法错误。我认为这可能与某些 RegEx 有关,或者在某些部分他们可能已经转义了一些双引号。

编辑:代码在这里找到:https ://github.com/TheHydroImpulse/resolve.js 但具体构建脚本(gruntjs)在这里:https ://github.com/TheHydroImpulse/resolve.js/blob/master/示例/基本/grunt.js

有什么建议么?

4

2 回答 2

1

为了保持 JS 代码的完整性,您必须在将其存储为字符串之前对其进行编码,并在使用之前对字符串进行解码。

这两种操作都可以使用内置的 JavaScript 函数encodeURIComponent()decodeURIComponent()来执行

于 2012-10-31T23:59:05.870 回答
1

这里黑暗中的狂野刺伤(一个小时前刚刚成为万圣节)但也许你没有把它全部放在一行中,因此没有正确处理多行字符串......

或者,也许您将文件压缩成一行,而不是在必要时添加分号。

我建议您使用缩小工具,如 uglify,然后将库作为单行缩小的 javascript 进行尝试。

于 2012-10-30T21:54:48.887 回答