【问题标题】:What is the correct way to use a package on different environment?在不同环境中使用包的正确方法是什么?
【发布时间】:2020-07-21 18:36:55
【问题描述】:

我有 3 个不同的环境:开发、登台和生产

在每个环境中,我都有一个使用我创建的包的 nodeJS 应用程序。 该软件包托管在我自己托管的私有 npm 注册表中。

我希望开发应用程序用于我的包的开发版本,暂存应用程序使用我的包的暂存版本,等等...

起初我想创建我的包的 3 个版本(my-package_developmentmy-package_staging 等)但它无法维护

正确的做法是什么?

【问题讨论】:

    标签: node.js module package require


    【解决方案1】:

    您可以使用以下任何一种方法


    方法 1

    在你的包中使用环境变量:

    switch (process.env.NODE_ENV){
            case "development":
              //enter code here
              break;
            case "staging":
              //enter code here
              break;
            default:
              //enter code here
    }
    

    像这样运行你的代码

    NODE_ENV=development node server.js
    

    方法2

    将环境直接传递给你的包

    const package_name = require("your_package")(process.env.NODE_ENV)
    

    然后使用switch case相应地执行代码

    switch (env){
                case "development":
                  //enter code here
                  break;
                case "staging":
                  //enter code here
                  break;
                default:
                  //enter code here
        }
    

    【讨论】:

    • 感谢您的回答,但我不希望根据 DEPLOY_ENV 变量有不同的行为,我正在寻找一种方法来使用我的包的“生产版本”与我的生产应用程序。我不能使用你描述的方法,因为它会迫使我在这个包的一个版本中拥有我的包的 3 个不同版本
    猜你喜欢
    • 2020-01-24
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2023-04-02
    • 2018-02-25
    • 2020-10-03
    • 1970-01-01
    相关资源
    最近更新 更多