【问题标题】:I can not use grunt -cli and grunt serve in my web hosting我不能在我的虚拟主机中使用 grunt -cli 和 grunt serve
【发布时间】:2015-05-25 05:28:44
【问题描述】:

我在 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 任务 '' serve ''

【问题讨论】:

    标签: node.js gruntjs grunt-cli


    【解决方案1】:

    选项 0

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

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

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

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

    选项 1

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

    选项 2

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

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

    选项 3

    如果您有权在您的服务器上这样做,您可以使用sudo npm install -g grunt-cli

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

    【讨论】:

    • 非常感谢。只需 node_modules/.bin/grunt 运行它
    • 很高兴您找到了解决方案。 (听起来您从项目根目录而不是主目录运行 npm install grunt-cli。这也可以,但是是的,那么命令的 ~/ 部分必须删除。)
    猜你喜欢
    • 2014-04-09
    • 2015-05-19
    • 1970-01-01
    • 2014-09-04
    • 2013-11-22
    • 2016-01-23
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多