将Javascript代码放在字符串中?

时间:2012-10-30 21:48:16

标签: javascript string module

我正在尝试将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/examples/basic/grunt.js

任何建议?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

这两项操作均可使用内置JavaScript函数encodeURIComponent()decodeURIComponent()

执行