最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 翻译 | 《JavaScript Everywhere》第17章 部署Web应用程序

    正文概述 掘金(毛小悠)   2020-12-05   447

    翻译 | 《JavaScript Everywhere》第17章 部署Web应用程序

    写在最前面

    大家好呀,我是毛小悠,是一位前端开发工程师。正在翻译一本英文技术书籍。

    为了提高大家的阅读体验,对语句的结构和内容略有调整。如果发现本文中有存在瑕疵的地方,或者你有任何意见或者建议,可以在评论区留言,或者加我的微信:code_maomao,欢迎相互沟通交流学习。

    (σ゚∀゚)σ..:*☆哎哟不错哦

    第17章 部署Web应用程序

    当我刚开始专业从事Web开发时,“部署”是指通过FTP客户端将文件从本地计算机上传到Web服务器。没有任何构建步骤或管道,这意味着我的计算机上的原始文件与Web服务器上的原始文件相同。如果出现问题,我会疯狂地解决问题,或者通过将其替换为旧文件的副本来回滚更改。当时,这种狂野的西部方法行之有效,但也导致大量站点停机和意外问题。

    在当今的Web开发世界中,我们本地开发环境和Web服务器的需求大不相同。在我的本地计算机上,我想查看更改文件和调试未被压缩文件的即时变化。在我的Web服务器上,我只希望看到,部署和压缩文件后的变化。

    在本章中,我们将探讨一种将静态应用程序部署到Web的方法。

    静态网站

    Web浏览器解析HTMLCSSJavaScript来生成我们使用的网页。与ExpressRailsDjango之类的框架在请求时为页面服务器端生成标记不同,静态网站只是存储在服务器上的HTMLCSSJavaScript的集合。从包含标签的单个HTML文件到编译模板语言,多个JavaScript文件和CSS预处理器的复杂的前端构建过程,其复杂度范围可以很大。最后,静态网站是这三种文件类型的集合。

    注意,我们的应用程序是静态Web应用程序。它包含一些HTML标签、CSSJavaScript。我们的构建工具Parcel将我们写入到浏览器可用文件中的组件进行编译。在本地开发中,我们运行Web服务器,并使用Parcel的热模块替换功能即时更新这些文件。

    如果我们查看package.json文件,你将看到我包含了两个部署脚本:

    "scripts": {
      "deploy:src": "parcel build src/index.html --public-url ./",
      "deploy:final": "parcel build final/index.html --public-url ./"
    }
    

    要构建该应用程序,请打开终端应用程序,cd命令进入包含该项目的Web目录的根目录,然后运行build命令:

    # if you're not already in the web directory, be sure to cd into it
    $ cd Projects/notedly/web
    # build the files from the src directory
    $ npm run deploy:src
    

    如果你一直在跟着本书并在src目录中开发Web应用程序,则如上所述,在终端中运行npm run deploy:src会从你的代码生成已构建的应用程序。如果你希望使用与示例代码捆绑在一起的应用程序的最终版本,请使用npm run deploy:final将在最终应用程序目录中构建代码。

    在本章的其余部分,我将演示一种部署静态构建的应用程序的方法,这些文件也可以被托管在任何可以提供HTML web主机服务的树莓派(Raspberry Pi)的桌面上运行。尽管我们将要处理的流程类型有很多明显的好处,但是你的部署可以像更新一样简单。env文件指向远程API,运行构建脚本并上传文件。

    服务器端渲染React

    尽管我们将React应用程序构建为静态Web应用程序,但也可以在服务器上呈现JSX。该技术通常被称为“通用JavaScript”,并且可以带来许多好处,包括性能提高、客户端JavaScript的回退以及SEO的改进。诸如以下的框架Next.js试图简化此设置。尽管本书中没有介绍服务器端渲染的JavaScript应用程序,但我强烈建议你在熟悉客户端JavaScript应用程序开发后再探索这种方法。

    我们的部署管道

    对于我们的应用程序部署,我们将使用一个简单的管道,这将使我们能够自动将更改部署到我们的代码库上。对于我们的管道,我们将使用两种服务。首先是我们的源代码存储库GitHub上。第二个将是我们的虚拟主机Netlify

    我选择Netlify是因为它具有广泛但易于使用的部署功能集,并且专注于静态和无服务器应用程序。

    我们的目标是将对应用程序的master分支的任何提交自动部署到我们的Web主机。

    我们可以将该过程可视化,如图17-1所示。

    翻译 | 《JavaScript Everywhere》第17章 部署Web应用程序

    17-1。我们的部署过程

    Git托管源代码

    部署过程的第一步是设置源代码存储库。 你可能已经这样做了,如果你已经做了,请跳过。 如前所述,我们将使用GitHub,但可以使用其他公共Git主机(例如GitLabBitbucket)配置此过程。

    GitHub储存库

    我们将创建一个新的GitHub存储库,但如果你愿意,可以在以下位置使用官方代码示例通过为你的GitHub帐户创建一个派生链接来https://github.com/javascripteverywhere/web

    首先,切换到GitHub并创建一个帐户或登录到你现有的帐户。然后单击“新建存储库”按钮。提供一个名称,然后单击Create Repository按钮(图17-2)。

    翻译 | 《JavaScript Everywhere》第17章 部署Web应用程序

    17-2GitHub的新存储库页面

    现在,在终端应用程序中,切换到Web应用程序的目录,将Git来源设置为新的GitHub存储库,然后推送代码。由于我们正在更新现有的Git存储库,因此我们的说明与GitHub的说明略有不同:

    # first navigate to the directory if you're not already there
    cd Projects/notedly/web
    # update the GitHub remote origin to match your repository
    git remote set-url origin git://YOUR.GIT.URL
    # push the code to the new GitHub repository
    git push -u origin master
    

    现在,如果你切换到https://github.com//,你将看到该应用程序的源代码。

    使用Netlify进行部署

    通过将源代码存储在远程Git存储库中,我们现在可以配置Web主机Netlify来构建和部署代码。首先,前往netlify.com并注册一个帐户。创建帐户后,点击“来自Git的新站点”按钮。这将引导你完成站点部署的设置:

    1. 通过选择GitHub选择你的Git提供程序,这将连接并授权你的GitHub帐户。

    2. 接下来,选择包含源代码的存储库。

    3. 最后,设置你的构建设置。

    对于我们的构建设置,添加以下内容(图17-3):

    1. 生成命令:npm run deploy:src(或npm run deploy:final,如果部署最终示例代码)。

    2. 发布directory: dist.

    3. 在“高级设置”下,单击“新变量”,然后添加变量名API_URI和变量值https://.herokuapp.com/api(这将是我们部署到HerokuAPI应用程序的URL) 。

    配置完应用程序后,单击“部署站点”按钮。几分钟后,你的应用程序将在Netlify提供的URL上运行。现在,每当我们对GitHub存储库进行更改时,我们的网站都会自动部署。

    初始负载慢

    我们部署的Web应用程序将从我们部署的Heroku API加载数据。使用Heroku的免费计划,应用程序容器在闲置一小时后便进入睡眠状态。如果你有一段时间没有使用过API,则在容器回滚时,初始数据加载会很慢。 翻译 | 《JavaScript Everywhere》第17章 部署Web应用程序

    17-3。使用Netlify,我们可以配置构建过程和环境变量

    结论

    在本章中,我们已经部署了静态Web应用程序。为此,我们使用了Netlify的部署管道功能来监视Git存储库的更改,运行构建过程以及存储环境变量。在此基础上,我们具备了公开发布Web应用程序所需的一切。

    如果有理解不到位的地方,欢迎大家纠错。如果觉得还可以,麻烦你点赞收藏或者分享一下,希望可以帮到更多人。


    起源地下载网 » 翻译 | 《JavaScript Everywhere》第17章 部署Web应用程序

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元