当前位置:主页 > 网络安全 >

服务器高防_广东高防服务器_零误杀

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

服务器高防_广东高防服务器_零误杀

前言:这是我们开始学习咕噜语时(或遇到问题时)所希望的那种指南。它很长,所以如果你想跳过它,有一个随手可得的要点,你可以在我们的过程中分享。本指南分为三部分。这是第3部分,介绍了我们的部署过程。第1部分介绍了我们的本地开发过程,第2部分介绍了我们的测试过程。咕噜声在部署代码之前,需要执行一些优化任务。这些任务都是由这个构建任务来处理的,这个任务将生成一个dist文件夹,它包含了我们完整的、可供生产使用的代码。我们之前提到过我们是如何咕哝的发球:dist task这使得我们可以在本地检查我们的生产代码。结果是,该任务将此任务用于其文件。因此,虽然这不是我们(通常)直接运行的任务,但它是我们部署过程的核心。下面是我们如何配置它:grunt.registerTask("构建"['清洁:距离','配置责备:距离',"wiredep","通知",韩国高防cdn,"注射器","c"顺流:距离','useminPrepare','天然气样板:距离','autoprefixer',"康卡特",'副本:dist',"cssmin","丑",'filerev','usemin','htmlmin']);清洁:距离我们看着我们的清理:服务器任务早期的。以下是我们用于生产的产品:清洁:{距离:{文件:[{多特:是的,源代码:[".tmp",'']}]}}又很直接。我们正在清除所有临时文件和即将生成的dist文件夹。那个点的财产?这是Grunt的文件操作符选项的一部分,该选项"允许模式匹配以句点开头的文件名,即使模式在该位置没有显式的句点。"配置责备:距离由于我们的部署涉及到运行端到端测试,所以我们在构建任务中设置代理服务器,以鼓励这些测试针对我们编译的代码运行。我们在第一篇文章中介绍了如何使用grunt配置代理。重申一下,grunt connect proxy允许我们在接近生产环境的环境中测试代码;我们可以方便地(无需运行虚拟机)将API调用代理到实际的登台服务器。因为没有什么不同,任务可以在第151行的要点中找到。N注释缩小角度JavaScript可能会变得相当混乱。为了让注入系统工作,你必须使用数组注入和传入字符串和。。。只是重复性的工作应该自动化。这就是为什么会有grunt ng注释!nganotate任务在JavaScript文件中运行,寻找可以修改的注入,使它们能够缩小。我们的配置非常简单。//nganotate添加、删除和重建angularjs依赖项注入注释sngannotate:{选项:{单引号:true},应用程序:{文件:[{展开:正确,src:['/**/*.js','!/**/*.测试.js'],目的地:'.tmp'}]}}我们在代码中使用单引号,幸运的是,我们甚至有一个选项来匹配我们自己的!我们的文件配置与其他文件类似,我们只是忽略测试文件并将结果转储到.tmp目录中。旁注:我们使用的Grunt版本(0.4.0)还不允许将结果传送到其他任务中。这就是我们的.tmp目录发挥作用的地方。为了继续处理任务的结果,我们需要一个存储这些结果的位置。我们不想覆盖现有的文件,所以我们把它们放到.tmp文件夹中,然后在那里工作。我们听说咕噜的管道可以加速你的任务,如果那是你的事。c顺流:距离在我们的第一篇文章中,我们展示了如何使用concurrent,但没有做太多的工作?对于部署,我们现在有更多的任务要并发运行(我们可能还可以扩展到更多任务)!同时:{距离:['萨斯:距离',"imagemin",高防cdn用法,"斯维明"]}萨斯:距离与我们之前提到的没有变化服务器任务。不过,我们会把它分开,以防将来我们决定改变它。sass系统:{距离:{文件:{'.tmp/样式/主.css': '/风格/主.scss'}}}图像最小值图像优化是一个有趣的任务,需要进行,但做起来却很麻烦——也就是说,除非你将其自动化!我们用grunt contrib imagemin来做。我们没有任何具体的设置,所以我们只是告诉它寻找所有的图像,它可以找到和优化那些。图像最小值:{距离:{文件:[{展开:正确,cwd:'/图像',src:'{,*/}*{png,jpg,jpeg,gif}',目的地:'/图像'}]}}旁注:根据文档,此任务也可以优化SVG文件。在我们最初开发产品时,SVG支持似乎还不到位。下一个任务可以和这个任务结合起来!斯维明我们使用gruntsvgmin将SVG优化作为单独的任务运行(因为imagemin最初不支持它)。很简单:斯维明:{距离:{文件:[{展开:正确,cwd:'/图像',src:'{,*/}*.svg',目的地:'/图像'}]}}使用MinPrepare一旦我们的并发任务完成,单机5g防御够防ddos,我们就转到两个usemin任务中的第一个,即useminPrepare。useminPrepare是一个任务,它在HTML文件中查找需要运行的usemin任务,然后在内存中自动生成所需的Grunt配置选项,供usemin任务以后使用。我们的配置,再一次,非常简单地查找源文件以及在处理时将它们输出到何处。//读取usemin块的HTML以启用自动生成//concat、minify和修订文件。在内存中创建配置以便//可以对它们执行其他任务使用准备:{html:'/**/*.html',选项:{目的地:''}}天然气样板:距离我们已经看到了我们如何为地方发展执行这项任务。下面是我们用来创建分发文件的内容。NG模板:{选项:{module:'源清除',返回'/'+templateString;}},距离:{cwd:'/',源代码:["**/*.html",'!索引.html','!404.html'],目标:'.tmp/脚本/模板.js',选项:{usemin:'/scripts/应用程序js'//块}}}此任务与本地任务的最大区别是options属性。grunt angular模板支持usemin任务,所以我们告诉它在哪个usemin生成的javascript文件中附加我们的模板。副本:dist副本:{距离:{文件:[{展开:正确,多特:是的,%周=约曼.app%>',目的地:'',源代码:['*.{ico,png,txt}','索引.html','404.html','图像/{,*/}*{webp}','字体/**/*']}, {展开:正确,cwd:'.tmp/images',目的地:'/图像',src:['generated/*']}, {展开:正确,cwd:'./bower効组件/components font awesome/fonts',src:'*',目的地:'/字体'}]}}这个有点复杂,但我们可以很容易地分解它!对于要复制的第一组文件,我们将获取所有非模板html文件、所有字体、一些根目录项(如图标文件)和任何尚未优化的图像(例如webp文件类型)。如果您使用的是.htaccess文件,则需要保留dot:true设置,以便Grunt将其作为文件接收。对于第二组,我们将从.tmp/images/generated目录复制所有优化过的映像,并将它们放到分发目录中。最后,如果您有一个没有被导入的Bower组件,您也需要在这个步骤中复制它。usemin插件:concat、cssmin、uglify、filerevGrunt usemin知道如何开箱即用地使用这些插件,您只需安装它们。我们甚至不必为它们定义配置。没有改变的任务我们已经在本地开发服务器上看过wiredep、injector、autoprefixer。htmlmin公司最后,最后一步,是缩小最终的HTML文件。htmlmin(最小):{距离:{选项:{翻领hitespace:对,保守主义eCollapse:真,胶原虫属性:真,删除注释FromCDATA:true,removeOpt公司Ionatags:对},文件:[{展开:真,cwd:'',src:['*.html','/scripts/**/*.html','/views/**/*.html'],美国ddos防御,目的地:''}]}}有了这个,我们基本上只是改变索引.html和404.html文件。我们的目的地与源文件相同,因为这是最后一步,我们不需要将这些文件传送到其他任何地方。我们过去常常把模板文件放在JS之外,网络安全分析,但是使用上面的ngtemplates,情况就不一样了。您可以将上面的设置作为一个示例,演示如何使用多个路径作为源!呼噜部署最后是好东西!在那里我们可以推送代码!我们还没有建立一个持续集成系统(还没有),但我们也没有手动移动我们的文件!我们有一个登台和一个生产服务器,每个服务器都从前端git存储库中各自的分支提取代码。这个任务将构建我们的代码并将其放入适当的分支中!我们已经完成了上面的grunt构建任务,所以我们只讨论下面的部署步骤。/***使用:*咕噜部署:target--force*@param{string}目标与以下部署匹配:**/grunt.registerTask('deploy','Test,build,then git deploy',函数(目标){//如果包含但未设置为任何特定值,则返回true可变作用力=咕噜声。选项("力");/*不允许强行部署。。。现在。*/如果(力){返回咕噜.任务.运行(['build','buildcontrol:分段']);}如果(目标==='生产'){咕噜.任务.运行(['测试:套件',"构建","buildcontrol:"+目标]);}其他{咕噜.任务.运行(['测试:套件',"构建",'建筑控制

推荐文章
最近更新