当前位置:主页 > DDOS和CC >

网站防护_aj高防怎么样_限时优惠

时间:2021-06-11 22:04来源:E度网络 作者:E度网络 点击:

网站防护_aj高防怎么样_限时优惠

前言:这是我们开始学习咕噜语时希望得到的那种指南。它很长,所以如果你想跳过它,有一个随手可得的要点,你可以在我们的过程中分享。本指南分为三部分。这是第1部分,介绍了我们的本地开发过程。第2部分介绍了我们的测试过程,并用如何使用grunt来结束本系列文章。让我们面对现实吧,开发工作有时是重复的,ddos防御软件linux,平淡无奇,毫无乐趣。其中很多都来自于优化前端开发的繁琐任务:缩小、串联、复制、刷新、优化、丑陋和喘息测试!但别担心,还有希望!可以使用工具来限制(尽可能多地)烦人的开发任务。Grunt:JavaScript任务运行器就是其中之一。有很多人喜欢它,但是Grunt是我们选择的工具,它有着庞大的社区支持。虽然我们将重点关注Grunt,但这些任务中的许多都可以在Gulp等其他构建工具中使用。如果你不使用咕噜,你可能会找到一些灵感!在源代码:CLR,我们的平台使用单页应用程序(SPA)架构构建。我们的前端代码与后端代码完全独立。我们在前端看到的好处之一是构建过程。上面所有的任务?是的,那些在我们的咕噜工具箱里。我们甚至在部署(目前)。本指南的组织方式与大多数指南稍有不同。它被转换成Grunt:我们在中使用的构建任务的最终指南SRC:CLR。我们将了解他们所做的,探索新事物,并在此过程中找到答案。三戒好吧,它们不是真正的戒律。。。但是,我们使用Grunt来运行三个主要命令。呼噜服务-当地发展咕噜测试-确保我们没有做什么可怕的事情grunt部署-优化和部署我们的开发过程集中关注于这些命令,我们已经按照这些思路将本指南分开。为更好的工作流程干杯!呼噜发球这是我们用来在本地运行环境的基本命令。有了它,我们可以加载我们的站点,连接到API服务器,当文件更改时自动刷新我们的浏览器,甚至可以方便地验证我们的构建过程是否有效。基本命令集如下所示:grunt服务-在本地运行所有内容,DDos防御1008DDos防御,并假设您有一个本地后端环境在运行grunt-serve--api=qa-与上述相同,但允许您指定预配置的api服务器呼噜发球——蜂王=www.google.com--apiPort=1337-如果尚未预配置API服务器咕噜服务:dist--api=qa-在接近生产环境的本地验证生成过程这些命令只用于本地开发。基本任务注册在Gruntfile.js文件:grunt.registerTask('serve','Compilethen start a connect web server',函数(target){如果(目标==='距离'){返回咕噜.任务.运行(['build','连接:距离:keepalive']);}咕噜.任务.运行(['清理:服务器',"注射器",'配置谴责:利弗劳德',"wiredep","c"oncurrent:服务器','天然气模板:服务','autoprefixer','连接:livereload',"观察"]);});在这个小片段里有很多事情发生,让我们把它分解。(如果您询问api参数,我们将在下面介绍。grunt.registerTask虽然我们以不寻常的方式使用registerTask,但我们的方法仍然很简单。通常你会看到grunt.registerTask('default',['jshint',防御ddos攻击设备,'quonit','concat','uglify']);。在我们的例子中,我们使用函数语法。此语法接受grunt命令上的参数,允许您在运行任务时指定目标,例如grunt发球:目标。在上面的例子中,我们使用它来为默认的本地环境提供gruntserve(未优化)或者我们的构建环境使用grunt发球:距离(优化)。这种差异为我们提供了一个更真实的表示,说明我们的代码在生产环境中的外观和感觉。让我们来回顾一下当我们刚开始呼噜发球时会发生什么。你可以找到格伦特发球:距离我们讨论部署的部分。清理:服务器grunt contrib clean基本上清空一个目录。我们只是用它来清理.tmp目录,这样就不会有旧的服务了。配置非常简单:清洁:{服务器:'.tmp'}喷油器注射器对我们来说是新的。我们最初是在索引.html而且,正如你所料,这很快变得很糟糕。所以我们把它自动化了。我们的配置相当简单,但有一些问题:喷油器:{选项:{忽略路径:'/'},依赖项:{文件:{'/索引.html': ['/**/*.js','!/**/*.测试.js',//客户端没有测试。。。嗯'!/脚本/js段'//我们的......wiredep忽略路径我们在项目中使用绝对路径,但是wiredep默认情况下会将相对路径连接到bower_components文件夹。在我们的例子中,bower_components文件夹是从根目录提供的,因此我们需要删除在相对路径上预先加上的"."。幸运的是,wiredep配置选项允许您删除路径的这一部分。为此,我们使用一个正则表达式来匹配相对路径中的两个句点,然后插件将这些句点剥离以生成所需的绝对路径。旁注:配置这个已经有一段时间了。代码注释可以帮助我理解ignorePath正在做什么,比我花的时间要快得多。。。wiredep除外责任有时候你不想注射。对于我们来说,我们不想注入引导sass官方组件,也不想注入我们自己的风格指南,因为我们有手动过程来包含这些组件。concurrent:服务器我们的第一个呼噜服务于特定的任务!说实话,这不是什么特别的地方,我们可以在这里提高我们的表现。不过,目前看来是这样的:同时:{服务器:['libsass:服务器']}看到了吗?没什么特别的。理想情况下,我们应该在这里投入更多的任务,并让它们同时运行,但我们没有时间来优化这一点。最后,这个任务所做的就是运行libsass:服务器我们。sass:服务器我们使用LBASASS——C++编译的SASS!--用于编制SCS。我们最初使用grunt-contrib指南针,但发现处理时间对于我们特定的环境来说是可怕的。下面的任务只是配置为生成一个文件。精确计算的时候给我们10个小数。update:true告诉它在监视事件期间只编译更改的文件。sass系统:{选项:{精度:10,更新:真},服务器:{选项:{debugInfo:真},文件:{'.tmp/样式/主.css': '/风格/主.scss'}}}天然气模板:服务现在这是一个有趣的,我们最近实现了。因为我们要创建一个SPA,所以我们所有的模板文件都作为各自的.html文件单独提供。这在理论上很好:它提供了所需的文件以及浏览器缓存模板的能力。然而,当涉及到新的部署时,这种方便的缓存变成了一场噩梦,因为缓存不知道要检查新版本。NG模板:{选项:{module:'源清除',返回'/'+templateString;}},服务器:{cwd:'/',源代码:["**/*.html",ddos防御开发,'!索引.html','!404.html'],目标:'.tmp/脚本/模板.js',}}旁注:虽然我们可以选择filerev我们的模板文件,但我们选择了连接并编译成一个模板.js文件。这可以用最少的文件名替换来达到类似的效果。天然气模板:服务模块明白了吗ngtemplates默认情况下通过run方法在角度模块上附加模板。我们没有意识到这一点,只是试着调试了一段时间。确保你的模块匹配你的角度模块。如果你足够勇敢,维盟ddos防御设置,可以选择让ngtemplates创建自己的模块。天然气模板:服务url明白了吗如前所述,我们在项目中使用绝对路径,因此我们设置一个cwd来指定这些模板的位置,并在templateString(基本上是文件的路径)前面加上/。天然气模板:非模板服务gotc公司

推荐文章
最近更新