Javascript导入仅用于开发

时间:2015-02-26 23:06:27

标签: javascript dependencies gulp bower wiredep

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

我真的希望能够开发一些只在我开发时运行的javascript(运行gulp服务)然后当我运行gulp这些文件不会包含在dist中,但我可以&#39找不到任何常见的做法。

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

这是不是没有完成的事情(生产版本中没有包含测试脚本),或者是否有一些自动化缺少这样做?

2 个答案:

答案 0 :(得分: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时,它们就会被删除。

答案 1 :(得分: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 /清洁脚本:我个人使用的另一种方法是使用一个自动生成&#34;生产&#34;您的网页版本。例如,我有一个Python脚本,它会忽略我的开发HTML文件中包含在<!--ignore--><!--endignore-->注释中的任何代码。当我运行脚本时,它会生成并打包最新的&#34; Release&#34;我的代码版本没有任何被忽略的代码,这些代码存在于测试环境中。

PHP:你也可以用PHP(或任何其他预处理器/服务器端脚本)做类似的事情,其中​​生成标题的PHP会忽略某个数组中的某些javascript URL,或者你会格式化它。

希望其中一个可以帮到你!如果你需要比我给出的更多示例代码,也请告诉我,我很乐意编写一个示例脚本。