无法在共享主机上正确安装 Node.js 软件包

Can't install Node.js Packages properly on Shared hosting

我正在尝试将一些软件包安装到我在 namecheap 服务器上的共享主机帐户, 我是 node Js 的初学者,所以如果这是一个愚蠢的问题,请告诉我, 我最初尝试通过 CPanel 中的命令行界面安装两个包 express & https,这两个似乎已安装,但它给出了关于 package.json 文件的警告。

输出如下

[letlziml@premium88 ~]$ npm install express
bash: npm: command not found
[letlziml@premium88 ~]$ cls
bash: cls: command not found
[letlziml@premium88 ~]$ source /home/letlziml/nodevenv/rootz/12/bin/activate
[rootz (12)] [letlziml@premium88 ~]$ cls
bash: cls: command not found
[rootz (12)] [letlziml@premium88 ~]$ cd /home/letlziml/rootz
[rootz (12)] [letlziml@premium88 rootz]$ npm install
ln: creating symbolic link `/home/letlziml/nodevenv/rootz/12/lib/package.json': No such file or directory
npm WARN saveError ENOENT: no such file or directory, open '/home/letlziml/nodevenv/rootz/12/lib/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/home/letlziml/nodevenv/rootz/12/lib/package.json'
npm WARN lib No description
npm WARN lib No repository field.
npm WARN lib No README data
npm WARN lib No license field.

audited 88 packages in 1.015s
found 0 vulnerabilities

[rootz (12)] [letlziml@premium88 rootz]$ npm install express
ln: creating symbolic link `/home/letlziml/nodevenv/rootz/12/lib/package.json': No such file or directory
npm WARN saveError ENOENT: no such file or directory, open '/home/letlziml/nodevenv/rootz/12/lib/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/home/letlziml/nodevenv/rootz/12/lib/package.json'
npm WARN lib No description
npm WARN lib No repository field.
npm WARN lib No README data
npm WARN lib No license field.

+ express@4.17.1
updated 1 package and audited 88 packages in 1.009s
found 0 vulnerabilities

[rootz (12)] [letlziml@premium88 rootz]$ npm install https
ln: creating symbolic link `/home/letlziml/nodevenv/rootz/12/lib/package.json': No such file or directory
npm WARN saveError ENOENT: no such file or directory, open '/home/letlziml/nodevenv/rootz/12/lib/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/home/letlziml/nodevenv/rootz/12/lib/package.json'
npm WARN lib No description
npm WARN lib No repository field.
npm WARN lib No README data
npm WARN lib No license field.

+ https@1.0.0
added 1 package from 1 contributor and audited 89 packages in 0.977s
found 0 vulnerabilities

[rootz (12)] [letlziml@premium88 rootz]$ npm install https
ln: creating symbolic link `/home/letlziml/nodevenv/rootz/12/lib/package.json': No such file or directory
npm ERR! code EJSONPARSE
npm ERR! file /home/letlziml/nodevenv/rootz/12/lib/package.json
npm ERR! JSON.parse Failed to parse json
npm ERR! JSON.parse Unexpected end of JSON input while parsing near ''
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/letlziml/.npm/_logs/2020-10-09T11_07_13_947Z-debug.log
[rootz (12)] [letlziml@premium88 rootz]$ npm install wss
ln: creating symbolic link `/home/letlziml/nodevenv/rootz/12/lib/package.json': No such file or directory
npm ERR! code EJSONPARSE
npm ERR! file /home/letlziml/nodevenv/rootz/12/lib/package.json
npm ERR! JSON.parse Failed to parse json
npm ERR! JSON.parse Unexpected end of JSON input while parsing near ''
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/letlziml/.npm/_logs/2020-10-09T11_09_42_615Z-debug.log
[rootz (12)] [letlziml@premium88 rootz]$ npm install 'wss'
ln: creating symbolic link `/home/letlziml/nodevenv/rootz/12/lib/package.json': No such file or directory
npm ERR! code EJSONPARSE
npm ERR! file /home/letlziml/nodevenv/rootz/12/lib/package.json
npm ERR! JSON.parse Failed to parse json
npm ERR! JSON.parse Unexpected end of JSON input while parsing near ''
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/letlziml/.npm/_logs/2020-10-09T11_10_04_988Z-debug.log
[rootz (12)] [letlziml@premium88 rootz]$ npm install fs
ln: creating symbolic link `/home/letlziml/nodevenv/rootz/12/lib/package.json': No such file or directory
npm ERR! code EJSONPARSE
npm ERR! file /home/letlziml/nodevenv/rootz/12/lib/package.json
npm ERR! JSON.parse Failed to parse json
npm ERR! JSON.parse Unexpected end of JSON input while parsing near ''
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/letlziml/.npm/_logs/2020-10-09T11_12_22_034Z-debug.log
[rootz (12)] [letlziml@premium88 rootz]$ source /home/letlziml/nodevenv/rootz/12/bin/activate && cd /home/letlziml/rootz
[rootz (12)] [letlziml@premium88 rootz]$ netsh /?
bash: netsh: command not found
[rootz (12)] [letlziml@premium88 rootz]$ /?
bash: /?: No such file or directory
[rootz (12)] [letlziml@premium88 rootz]$

它说找不到文件 package.json 或无法 read/parse 这个文件。所以我创建了一个空白文件,看看它是否也会写入数据或用必要的信息填充它,现在当我 运行 npm 在任何模块上它不再发出警告并且只是抛出错误......有人吗知道如何解决这个问题吗?

非常确定 https 和 express 都正确安装,因为当我查看模块文件夹时,它们现在在那里,而以前不在。然而,当我尝试创建一个 https 服务器时,网页仍然抛出错误。

在youtube上看过不少node教程,但是这部分还是让我很困惑。
ps。 1) ENOENT 是什么意思? 2) 如何使用所有正确信息自动填充 package.json 文件?

要在本地安装包,您需要在一个项目中。项目文件夹只需要一个 package.json

运行 npm init 将指导您完成节点项目的创建。检查 https://docs.npmjs.com/cli/init 以获得进一步的说明。将包安装到项目时 npm install --save <package name> 将更新包 json 并包含对它的依赖。

此外,还有可以通过 npm install -g <package name> 安装的全局包。这些将在全球范围内提供。这些通常是 nodejs 上的 CLI 工具 运行。

我会推荐 运行 npm init 并尝试一个简单的 hello world 项目开始。

恩诺特:Why does ENOENT mean "No such file or directory"?

我刚刚成功地将我的第二个 node.js 应用程序部署到远程服务器(爱尔兰网络服务器)。对我来说,在主页的 cPanel 中有一个“安装 Node.js”图标。按照文档,我打开了它。使用 ftp 将所有文件传输到服务器后 node_modules 文件夹除外,我单击该图标并按照 cPanel 文档中的说明创建了一个 node.js 应用程序。然后我点击了 Run npm install 的按钮。这与 $ npm install locally 相同。它查看 package.json 文件并安装依赖项中列出的所有包,但它会将它们安装在一个文件夹中,该文件夹是服务器根目录(不是您网站的)的一个分支,至少对我来说似乎无法访问。即使使用我的终端使用 ssh $ ssh username@serverIPaddress 访问服务器,尽管它允许我 $ npm install express 我怀疑这是否会对我的项目产生任何影响。你在 Failed to parse json 上面遇到的错误之一是我在编辑 json 文件后遗漏了一个逗号时得到的。当您在本地 运行 $ npm init 时,它会创建一个完美的 package.json 文件。如果您将其上传到您的网站根目录,它可能会修复该错误。祝你好运!