如何在 NodeJs 中更改 package.json 中的主文件

Posted

技术标签:

【中文标题】如何在 NodeJs 中更改 package.json 中的主文件【英文标题】:How to change main file in package.json in NodeJs 【发布时间】: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 以确定如何启动应用程序 前两个答案是有道理的,所以最好创建一个新文件并根据当前环境实现需要相应文件的逻辑。 【参考方案1】:

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

【讨论】:

以上是关于如何在 NodeJs 中更改 package.json 中的主文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 NodeJs 中更改 package.json 中的主文件

Nodejs / PostgreSQL sequelize - 如何更新/更改数据库中的模型?

如何在 Ubuntu 上检查和更改 Nodejs 版本?

如何使用 redis PUBLISH/SUBSCRIBE 和 nodejs 在数据值更改时通知客户端?

如何使用 redis PUBLISH/SUBSCRIBE 和 nodejs 在数据值更改时通知客户端?

在Redis中存储对象(nodeJS)有很多更改