我不能在我的虚拟主机中使用 grunt -cli 和 grunt serve

I can not use grunt -cli and grunt serve in my web hosting

我在 Node.js 上开发了一个网站,运行 在我的本地计算机上非常完美。我 运行 我的服务器使用命令:

$ grunt serve

问题是当我 运行 我的网络应用程序在我的在线服务器(gandi 服务器)上运行时。我无法使用命令

$ grunt serve

因为我应该安装包 '' g运行t-cli ''wich :

$ npm install -g grunt-cli

在服务器Gandi.net上,我无法安装全局包,所以我不使用命令

$ grunt

我试试

这样的程序
var grunt = require('grunt');

grunt.task.run("serve");

程序不运行。

我需要帮助 运行 我的 g运行t 任务 '' serve '' 没有 g运行t -cli

选项 0

grunt是构建工具,一般不用于运行本地测试服务器以外的服务器。所以最好的解决方案可能是让你的服务器启动并 运行ning 使用 pm2 or forever 或其他东西而不是 grunt.

就在服务器上获取 grunt 运行ning 而言,如果您仍然需要这样做,您有几个选择。

选项 1 对系统的破坏最小,但可能需要您最了解才能成功完成。具体来说,如果 grunt 发现自己处于非全局路径中,我不确定您会从中得到多少悲伤。

请注意,选项 1 不需要超级用户权限。

选项 1

从您的主目录中的 shell,您可以在没有 -g 的情况下安装 grunt-cli。然后使用 shell 别名或您的 PATH 环境变量,以便您 运行 g运行t from ~/node_modules/.bin/grunt.

选项 2

如果您有超级用户权限,请更改全局 node_modules 目录的权限,以便您具有写入权限。

出于安全原因,有些人建议在下一个选项中使用此选项,但我认为大多数人可能会直接选择...

选项 3

如果您有权在您的服务器上执行此操作,则可以使用 sudo npm install -g grunt-cli

选项 3 最简单​​,但也需要对您正在安装的软件包最信任。因为 a package can do anything 一旦你开始使用 sudo 安装它,只在你检查 and/or 信任的包上使用这个选项。