【问题标题】:How to change main file in package.json in NodeJs如何在 NodeJs 中更改 package.json 中的主文件
【发布时间】:2020-04-10 21:02:51
【问题描述】:

我是 Node.js 的新手,这是我在 node.js 中的第一个项目。现在我有两个主要文件。 对于本地环境,我有 index.js 文件和生产环境 production.js。现在我希望当我运行命令 npm start 然后根据环境自动加载所有文件。

我在 package.json 中完成了以下更改

 "main": "process.env.APP_ENV==undeinfed ? index.js : server.js",
 "scripts": {
   "start": "process.env.APP_ENV==undeinfed ? index.js : server.js",
   "test": "echo \"Error: no test specified\" && exit 1"
  }

当我 npm start 命令时,我收到以下错误

quick-create-post@1.0.0 开始 /home/php/fayvo/lambda/quick-create-post process.env.APP_ENV==undeinfed ? index.js : server.js

sh: 1: process.env.APP_ENV==undeinfed: 未找到 npm ERR!代码 生命周期 npm 错误!系统调用产生 npm 错误!文件 sh npm 错误!错误号 ENOENT npm 错误!快速创建帖子@1.0.0 开始: process.env.APP_ENV==undeinfed ? index.js : server.js npm 错误!产卵 ENOENT npm 错误! npm 错误!在 quick-create-post@1.0.0 启动时失败 脚本。 npm 错误!这可能不是 npm 的问题。有 上面可能有额外的日志输出。

npm 错误!可以在以下位置找到此运行的完整日志:npm ERR!
/home/.npm/_logs/2019-12-18T10_11_35_259Z-debug.log

【问题讨论】:

  • 不管它是什么......你的undefined 是错误的undeinfed。检查拼写
  • 我建议使用一个主文件来说明当前的process.env.APP_ENV 值并在每个环境中执行正确的逻辑。
  • 脚本是 cli 命令,不是 javascript 表达式,这不起作用。通常,您将有一个主文件,您可以在其中检查环境变量 NODE_ENV 以确定如何启动应用程序
  • 前两个答案是有道理的,所以最好创建一个新文件并根据当前环境实现需要相应文件的逻辑。

标签: javascript node.js reactjs


【解决方案1】:

建议实现一个index.js 文件,该文件在package.json 文件内显式地执行所有需要的分支,而没有隐藏逻辑。它将提供更具可读性和灵活性的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-08
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 2019-10-09
    • 2021-08-23
    相关资源
    最近更新 更多