0

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

$ grunt serve

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

$ grunt serve

因为我应该安装包 '' grunt-cli ''wich :

$ npm install -g grunt-cli

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

$ grunt

我尝试了一个程序

var grunt = require('grunt');

grunt.task.run("serve");

程序不运行。

我需要帮助才能在没有 grunt -cli 的情况下运行我的 grunt 任务“服务”

4

1 回答 1

1

选项 0

grunt是一种构建工具,一般不用于运行本地测试服务器以外的服务器。因此,最好的解决方案可能是使用pm2orforever或其他东西而不是grunt.

至于grunt在服务器上运行,如果您仍然需要这样做,您有几个选择。

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

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

选项1

从主目录中的 shell,您可以grunt-cli在没有-g. 然后使用 shell 别名或您的PATH环境变量,以便您从~/node_modules/.bin/grunt.

选项 2

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

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

选项 3

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

选项 3 是最简单的,但也需要最信任您正在安装的软件包。因为一旦你开始使用 安装一个包,它就可以做任何事情sudo,所以只在你检查和/或信任的包上使用这个选项。

于 2015-05-24T20:51:32.217 回答