如何在 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 - 如何更新/更改数据库中的模型?
如何使用 redis PUBLISH/SUBSCRIBE 和 nodejs 在数据值更改时通知客户端?