【问题标题】:Nodejitsu and bower installNodejitsu 和凉亭安装
【发布时间】:2013-05-23 15:19:21
【问题描述】:

是否有人尝试将使用 https://github.com/bower/bower 的应用程序部署到 Nodejitsu 托管?

问题是npm pack nodejitsu 用于部署应用程序的命令。它会忽略所有以点开头的文件,尤其是.bowerrc,这就是为什么我不能将bower install 作为部署后脚本运行..

有什么建议吗?也许使用空的.npmignore 文件?

谢谢!

【问题讨论】:

    标签: javascript npm bower nodejitsu


    【解决方案1】:

    我遇到了同样的问题,并且(不知何故)我在没有提交 bower_components 文件夹的情况下解决了它。由于 Bower 已达到 1.0,因此可以以编程方式使用 API,而不是通过命令行界面。因此,您可以创建如下的小脚本:

    var bower = require('bower'),
        path = require('path');
    
    bower.commands
    .install([path.resolve(".")])
    .on('end', function (installed) {
        console.log(installed);
    });
    

    在 Nodejitsu 上,可以使用 package.json 中的 script 字段在部署前和部署后触发命令。因此,我可以在部署后触发我的凉亭安装:

    {
      "name": "myapp",
      "version": "0.0.1",
      "description": "",
      "main": "app.js",
      "scripts" : {
        "predeploy": "echo This will be run before deploying the app",
        "postdeploy": "node bower_install.js",
        "start": "node app.js"
      },
      "dependencies": {
        ...
      }
    }
    

    bower_install.js 是上面的脚本。

    【讨论】:

    • Nodejitsu 的 postdeploy 脚本在 本地 运行,因此使用它只会在本地安装组件(而不是在服务器上)。您可以使用这种技术,但您必须在您的应用程序中使用(可能在启动时)。
    【解决方案2】:

    您应该在创建应用程序时提交components 文件夹。这也是 npm 的推荐做法。这样,您可以确保只部署您在本地拥有的内容。 Bower 最终会得到一个shrinkwrap 命令,但现在这是要走的路。

    【讨论】:

    • 非常感谢,我一直认为包管理器提供的东西应该远离源代码控制。
    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 2013-07-03
    • 2014-02-09
    • 2016-06-13
    • 2017-03-18
    • 2015-03-30
    • 2014-08-08
    • 2023-03-07
    相关资源
    最近更新 更多