node.js - 有条件地从 package.json 中排除安装 Node 依赖项

标签 node.js npm amazon-ec2 aws-lambda

我有一个 ExpressJS 应用程序。我想在 Lambda 函数和 EC2 上执行它。

为了在 Lambda 函数上执行它,我使用 @vendia/serverless-express 包。

为了在 EC2 上执行它,我想排除安装 @vendia/serverless-express

环境变量 TYPE 可以区分两个部署。

由于 @vendia/serverless-expresspackage.json 中我的依赖项的一部分,它也安装在 EC2 上。有没有办法使用 EC2 部署的 TYPE 环境变量来排除它?

最佳答案

您可以在 package.json 中定义一个 block ,例如:

{
    ...
    "serverlessDependencies":
    {
        "@vendia/serverless-express": "*"
    },
    ...
}

然后,使用名为 handpick 的库选择何时安装它们。

然后编写一个 bash 脚本来评估 NODE_ENV 并决定要做什么:

伪代码:

npm install
if(NODE_ENV == 'serverless')
   npx handpick --target=serverlessDependencies

关于node.js - 有条件地从 package.json 中排除安装 Node 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73854423/

相关文章:

java - 如何根据用户数据的一些哈希生成自定义 JSESSIONID 以复制 session

json - Node.js 中使用 mongoose 将 JSON 插入 mongoDB 失败

javascript - 以编程方式创建 aws API key 并将其添加到单一功能的使用计划中?

javascript - 如何修复 'TypeError: Failed to fetch' ?

ubuntu - 哟meanjs应用模板安装错误

tomcat - 访问 AWS EC2 实例上的 Tomcat 文件夹

node.js - 使用 Node.js 加密文本文件中的各个行

node.js - npm -v 更新后也显示旧版本

javascript - NPM v7+ - 如何安装带有 "lockfileVersion": 1 的软件包

amazon-web-services - 亚马逊如何拥有弹性 IP 的专有权