0

我来自 Java 背景,在这种情况下,测试依赖项而不是生产依赖项是很常见的,但是,使用我发现很难理解如何使用 Javascript 和 HTML 实现这一点。

我真的希望能够开发一些仅在我开发时运行的 javascript(运行 gulp serve),然后当我运行 gulp 时,这些文件不会包含在 dist 中,但我找不到任何常见的方法正在做。

到目前为止,我正在使用 yeoman 的 gulp-webapp。

这是没有完成的事情(有一个不包含在生产版本中的测试脚本),还是我缺少一些自动化来做到这一点?

4

2 回答 2

1

正如命运和橡皮鸭调试一样,我想我已经找到了我原本难以捉摸的问题的答案。很抱歉自我回答,但我把这个放在这里是为了繁荣,所以其他人可以学习。

生成的 gulp 脚本使用useref,这意味着可以在 html 中添加注释以将文件组合在一起。但是,它还提供了使用以下语法删除这些文件的能力:

<!-- build:remove -->
<script src="/bower_components/jquery-mockjax/jquery-mockjax.js"></script>
<script src="scripts/mock.js"></script>
<!-- endbuild -->

所以现在我只是使用它,当我这样做时,gulp serve它包含 javascript 文件,当我调用gulp它们时,它们就会被删除。

于 2015-02-26T23:29:02.043 回答
0

以下是几种不同的解决方案:

Javascript/jQuery:正如 blex 所提到的,一种方法是DEBUG_MODE在始终加载的脚本中创建一个布尔值,然后该脚本将在文档中插入更多脚本节点,这些脚本节点将包含它认为适合加载的脚本。

例如:

if(DEBUG_MODE){
    for(var x=0; x<debuggingScripts.length; x++){
        InsertScript(debuggingScripts[x]);
    }
}

其中debuggingScripts 是一个脚本URL 数组,InsertScript() 是一种将脚本添加到DOM 的方法。

Python/清理脚本:我个人使用的另一种方法是使用脚本自动生成网页的“生产”版本。例如,我有一个 Python 脚本,它将忽略我的开发 HTML 文件中包含在 a<!--ignore--><!--endignore-->注释中的任何代码。当我运行脚本时,它会生成并打包我的代码的最新“发布”版本,而没有测试环境中存在的任何被忽略的代码。

PHP:您也可以使用 PHP(或任何其他预处理器/服务器端脚本)做类似的事情,其中​​生成您的标头的 PHP 将忽略某个数组中的某些 JavaScript URL,或者您可以对其进行格式化。

希望其中之一对您有所帮助!如果您需要比我提供的更多示例代码,也请告诉我,我很乐意编写示例脚本。

于 2015-02-26T23:20:34.937 回答