Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >吞咽/ NPM依赖-当我的网站完成后,我该如何处理它们?

吞咽/ NPM依赖-当我的网站完成后,我该如何处理它们?
EN

Stack Overflow用户
提问于 2017-12-29 17:51:17
回答 1查看 896关注 0票数 0

我已经开始学习古普和Webpack,有一件事没有一个教程是.当您的项目完成并准备部署时-您如何处理/对所有的dev依赖项发生了什么?

node_modules文件夹本身是巨大的,我假设您没有将它上传到您的web服务器(或者您可能上传了)?但是,这是否意味着您从使用SASS/minification之类的东西中获得的所有好处只能在您的localhost项目上使用,因此只有完成的文件才会被部署(这意味着如果您需要进行任何小的更改,就必须在站点上实时编辑精简的代码等)。

学习过程的这一部分比我到目前为止在网络开发中所经历的任何事情都更难找到信息。我也认为这是很糟糕的,没有一个主要的学习图书馆(琳达,树屋等)在教程的末尾讨论这个问题。就像,恭喜你建立了一个你可以上传的网站。好的,但是我该如何处理所有依赖项中的数百个文件呢?我是否正常上传他们作为网站的一部分,如果不这样做,我如何防止这一点或npm是否自动阻止?

任何指导/解释都会令人惊奇。

艾米丽

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-30 06:01:27

部署项目有许多不同的方法。它所基于的技术、团队规模、项目规模、项目重要性以及许多其他因素都是决定它应该如何完成的重要因素。我不能深入探讨大型项目是如何完成的,因为这本身就是一个领域,但我可以给你一些关于如何开始的建议。

在部署代码时,通常可以选择四种策略:

  1. 在部署期间在服务器上构建。
  2. 在部署和部署node_modules和生产文件之前进行构建。
  3. 在部署之前进行构建,并且只部署生产文件。
  4. 使用容器进行部署。

在服务器上构建

使用此策略,您可以将存储库中的所有内容上载到服务器。所谓存储库,我指的是源代码回购,而不是整个项目文件夹。忽略的文件和文件夹(在.gitignore中,如果使用git)不会上传,这意味着您不会上传node_modules或git生成的文件。我假设您没有使用版本控制跟踪这些文件和文件夹。上传完文件后,您可以在服务器上运行npm -只=gulp

当您在启用生产模式的情况下运行npm安装时,它只下载并安装依赖项。devDependencies被跳过。您可能会想,您如何运行gulp而不安装它。那么,您必须将所有与吞咽相关的模块移到依赖项部分。这同样适用于你在吞咽文件中使用的模块,比如babel和webpack。

应用程序应该被设置为服务于gulp制作的文件。如果您使用的是Express,而gulp生成的文件位于一个名为dist的文件夹中,则如下所示:

代码语言:javascript
运行
AI代码解释
复制
app.use(express.static(path.join(__dirname, 'dist')));

当您使用云中托管提供商(如AWS、ElasticBean秸秆或Heroku )时,此构建过程通常是自动的。例如,要部署到Heroku,您可以将回购中的分支推送到Heroku上的远程存储库。然后Heroku将自动运行postinstall,然后运行在package.json中定义的postinstall脚本。如果将postinstall脚本设置为如下所示:

代码语言:javascript
运行
AI代码解释
复制
"scripts": {
  "start": "node app.js",
  "postinstall": "gulp"
}

当您正在推送更改时,它将自动为您运行gulp。然后,工作流包括在本地进行更改,提交代码,并将更改推送到Heroku。Heroku将处理国家预防机制和吞咽的事情。在构建完成后,它还将重新启动应用程序。弹力豆柄相似。

我会推荐这个策略。它与持续集成很好地工作。AWS和Heroku也有免费的层,因此您可以随意地在那里进行实验。

在部署和上载node_modules和生产文件之前进行构建

您还可以选择在部署之前构建所有内容。上面提到的构建过程有两个步骤:在服务器上运行npm以创建node_modules,然后在服务器上运行gulp来创建生产文件。

对于这个策略你

  1. 在您的工作文件夹(本地)内运行gulp以创建生产文件。
  2. 将生产文件以及package.json复制到一个新文件夹中。
  3. 运行npm -只=在新文件夹中创建node_modules。
  4. 确保应用程序在新文件夹中工作,然后将其上传到服务器。

在这种情况下,您不会在服务器上运行npm、安装或吞食。相反,您提供所需的所有文件。不过,我从没见过这样的情况。对于我提到的主机提供商来说,这不太好,因为他们希望自己运行npm安装。

仅在部署和上载生产文件之前进行构建

在部署期间没有在服务器上运行npm安装,就像上面的策略中提到的那样,并不常见。然而,跳过服务器上的吞咽步骤是很常见的。与其将所有的gulp模块都放在依赖项中,不如将它们保存在devDependencies中。你现在:

  1. 在本地运行gulp以创建生产文件。
  2. 将生产文件以及package.json复制到一个新文件夹中。
  3. 将新文件夹上载到服务器。
  4. 确保npm only=在服务器上运行。

这是相当容易做到的弹性豆茎,例如。您所要做的就是上传一个带有生产文件和package.json的zip文件,它将在上传完成后为您自动运行npm安装。安装完成后,它也将启动应用程序。

使用容器

这种策略使用诸如Docker这样的技术来创建一个容器,其中包含运行Node所需的一切。这意味着OS、Node、npm、您的代码等等。然后,您将容器上传到接受容器的托管解决方案,比如AWS。这并不难,但我建议您首先习惯“普通”部署方法。

您提到了对服务器上的代码做一些小的更改。我建议你不要那样做。您应该在本地编辑代码,然后确保它在本地服务器上工作,最后在提交后上传更改。你的回购应该反映现场代码。

最后,我建议您在Heroku或AWS或两者都创建帐户。把它弄得乱七八糟,看看它是如何工作的,这通常是最好的学习方法。它是免费的,你不能破坏任何东西。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48030232

复制
相关文章
Windows Xshell 会话文件保存与复用
Xshell 是方便好用的ssh管理软件,在重装操作系统时,之前的会话不想重复配置一遍,需要保存当前的会话配置,在新系统下运行,本文记录方案。 原理 会话都是 Xshell 存下来的配置文件,只需要备份文件,放在新软件配置文件的位置即可。 会话配置文件 配置文件路径: 文档 -> NetSarang Computer -> 7 -> Xshell -> Sessions 将会话文件保存,在新软件中复制过去即可 注意:复用配置会话时密码会置空,需要重新输入密码 参考资料 h
为为为什么
2022/08/05
1.4K0
Cookie 会话身份验证是如何工作的?
在 Web 应用程序中,Cookie-Session 是一种标准的身份验证方法。饼干,也被称为“sweet cookies”。类型为“小文本文件”,是指一些网站为了识别用户身份而存储在客户端的数据。Session的主要功能是通过服务器记录用户的状态。
艾编程
2023/01/16
1.1K0
如何导入SSL证书使网站支持https
无论你使用的使阿里云的云服务器还是腾讯云的云服务器,都支持免费申请ssl证书,这里以腾讯云为例介绍下如何申请ssl证书。
极简小课
2022/06/21
11K0
如何导入SSL证书使网站支持https
如何让R与Python一起工作 | 案例讲解
R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具。通俗点说,R是用来做统计和画图的。R拥有自己的脚本语言和大量的统计、图形库(得益于开源社区),这让她看起来既美又实用。与其他同类软件(如 SPSS)相比,R的特点是纯命令行的,这倒也好,我们更应该把注意力放在数据本身,而非统计工具的UI。
1480
2020/01/16
2K0
如何让R与Python一起工作 | 案例讲解
windows无exe
利用Windows自带的解析器:PowerShell、VBScript、批处理文件和JavaScript,对应的应用程序分别为powershell.exe、cscript.exe、cmd.exe和mshta.exe。利用上传或远程加载对应payload脚本,直接调用解析器运行(可以使用Invoke-Obfuscation或者 Invoke-DOSfuscation 等进行混淆) 用Windows自带的工具或脚本等原生工具实现执行恶意代码、启动程序、执行脚本、窃取数据、横向扩展、维持访问等,常用的有regsvr32.exe、rundll32.exe、certutil.exe、schtasks.exe、wmic.exe等,脚本类型的有:winrm.vbs、wmiexec.vbs、pubprn.vbs等
全栈程序员站长
2022/09/14
1.6K0
windows无exe
windows2008配置单会话
配置完成后,重启服务器生效!!! 1)【开始】--【管理工具】--【远程桌面服务】--【远程桌面会话主机配置】 图片.png 2)双击【限制每个用户只能进行一个会话】 -- 勾选【限制没有用户只能进行一个会话】 -- 【确定】 -- 【重启服务器生效】 图片.png 如果有错误的地方,请指正!
醉生萌死
2018/11/27
6.1K0
windows2008配置单会话
如何在 Windows 上搭建 PHP 网站
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。
Dust
2018/10/24
10.3K0
如何在 Windows 上搭建 PHP 网站
使Windows Vista 也支持cUrl扩展
我们都知道PHP的扩展在php.ini中只要将extension前的注释去掉就可以,可是我在Vista下使用php_curl.dll时,却怎么都无法正常运行,到底是什么原因呢,今天终于恍然大悟。
大江小浪
2018/07/25
7380
如何平衡工作与家庭
  可能刚踏入职场的小伙伴们感受不深,毕竟初出茅庐敢闯敢拼没有包袱。但是随着工作年限的增加,开始成家、父母渐老,不自觉地肩上的担子越来越重,这时候其实会面临一个难题,就是自己每天一共24个小时,如何去合理的划分时间在工作和家庭之中。我想这个问题应该有不少“职场老人”深有感触吧。
Zachary_ZF
2018/09/10
4620
如何平衡工作与家庭
教你在 Windows 上如何搭建 PHP 网站
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。
用户6524376
2019/10/22
2.4K0
教你在 Windows 上如何搭建 PHP 网站
教你在 Windows 上如何搭建 PHP 网站
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。
聚优云惠
2019/10/18
2.7K0
windows下nginx如何搭建网站
windows下nginx搭建网站的方法: 1.打开nginx安装目录,找到“nginx.conf”配置文件。 2.把本机的80端口的访问请求转到我们自己的网站主页上,配置如: server { listen  80; server_ name  localhost; #charset koi8-r: access_ 1og 1ogs/host.access.1og main; location / { root  D:/MyWebApps/;   //改成nginx根目录 index inde
会长君
2023/04/26
1.3K0
使网站兼容手机版本的代码
只需在头信息<head></head>下放入如下代码即可 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" /> <meta content="telephone=no" name="format-detection" /> <meta name="apple-mobile-web-app-capable
WindCoder
2018/09/20
3.8K0
如何使 Grafana as code
Grafana Dashboard 可以做很多事情,但您知道其实是可以通过代码来配置管理 Grafana Dashboard 的吗?本文是 Grafana Labs 软件开发工程师 Malcolm Holmes 和 Inuits 的开源顾问 Julien Pivotto 在 FOSDEM 2020 上的 topic 演讲记录。演讲中,两人讨论了如何使用代码来管理您的 Grafana 实例,并介绍了一些使用 Jsonnet[1] 的秘诀和技巧以及 Grafonnet[2](一个用于生成 Grafana Dashboard 的 Jsonnet 库)。
郭旭东
2020/12/30
1.7K0
如何使 Grafana as code
一行代码使网站变灰
根据国务院公告,定于2020年4月4日10时,为抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞举行哀悼活动。
前端黑板报
2020/04/10
6630
一行代码使网站变灰
跟我一起探索HTTP-典型的 HTTP 会话
在像 HTTP 这样的客户端——服务器(Client-Server)协议中,会话分为三个阶段:
用户1418987
2023/10/16
2320
跟我一起探索HTTP-典型的 HTTP 会话
网站的无密码登录
大部分网站,都要求用户登录。 常见的做法,是让用户注册一个账户。 这种做法并不让人满意。 对于用户来说,每个网站必须记住一个密码,非常麻烦;对于开发者来说,必须承担保护密码的责任,一旦密码泄漏,对网站
ruanyf
2018/04/13
3.1K0
网站的无密码登录
Cobots:让人与机器人一起工作
当人们在谈论由于机器人技术,人工智能(AI)和自动化的发展带来的人类工作被取代的问题时,他们有一个倾向,喜欢抛开人类的能力和灵活性,将当中的大部分归功于技术本身。技术成为关注的焦点。更严重的问题是那种我们只是需要更多的技术(机器人,自动化或者计算速度)的观点,把技术当成草地需要的水,认为只是浇水就能助其成长一样。但是在我们的生意中,并不是有了技术就能够提升生产力和效率,而是技术结合了人和知识才能产生我们想要的结果。 不管这些机器人会有多么的智能,在我看来,最多也就是半自动化而已。我不认为在我有生之年,机器人
机器人网
2018/04/12
7620
CDN网站防护与Worker无服务器应用构建
前言 描述:cloudflare是一家国外的 CDN 加速服务商还是很有名气的,提供免费和付费的加速和网站保护服务。 Cloudflare是用的比较多的一个国外的NS服务商,同时还提供15年的SSL证书以及免费CDN,同时也可以防护DDoS攻击。 以前的百度云加速的国外节点就是和 cloudflare 合作使用的 cloudflare 的节点。
全栈工程师修炼指南
2022/09/28
1.2K0
CDN网站防护与Worker无服务器应用构建
浅谈Windows系统下的网站备份与恢复
之前写了利用命令行工具创建LinuxMac系统下网站备份的文章,但是windows系统无法采用命令行工具进行网站备份,这个时候我们就需要借助第三方工具了。欲知详情,且看下文介绍。 目前仍有很多网站运营商没有做好备份工作,一旦网站突然“罢工”或遭到病毒感染,一切数据、资源、心血都将付诸东流。 前期准备 有的网站托管商会提供备份服务,当然你也可以购买一些附加的备份服务和插件。但本文的写作前提是你的网站托管商不提供备份服务,我们自己通过免费的软件进行网站备份。 首先,准备以下三个工具: 1.Filezilla
FB客服
2018/02/27
2.5K0
浅谈Windows系统下的网站备份与恢复

相似问题

使会话与WordPress一起工作

10

如何使jcaptcha与Spring会话一起工作?

10

如何删除无炊具域的cookie

16

使无头Chrome与Capybara一起工作

12

如何使这个快速会话逻辑与prisma一起工作?

111
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档