当前位置: 首页 > 面试题库 >

如何将使用grunt的节点应用程序部署到heroku

堵存
2023-03-14
问题内容

我使用的是grunt插件grunt-contrib-copy,也使用了grunt插件grunt-contrib- mincss(在我的应用程序中列为npm依赖项)。

另外,我不提交所有生成文件所在的npm_modules文件夹和public文件夹。grunt build在部署和设置服务器(已经在寻找public文件夹)之后,我不知道如何构建我的应用程序(我有命令)。

我看到了类似的东西grunt-heroku-deploy,但是在上传之前提交似乎是个坏主意。也许有一些温柔的决定…有什么想法吗?


问题答案:

npm支持某个postinstall步骤(在其他步骤中),这可能正是您想要的。

当您推送到heroku来解决构建依赖关系时,node.js heroku buildpack将运行以下命令:

$ npm install --production

https://devcenter.heroku.com/articles/nodejs-support#build-
behavior

如果您查看npm文档,则可以设置一系列脚本,以在有人npm install为您的软件包运行之前或之后运行。在的scripts属性中配置package.json。该scripts属性允许grunt在包的生命周期中发生某些事情时运行自定义脚本(包括)。

例如,要回显一些文本并grunt在任何人(包括Heroku)运行时运行命令npm install,请将其添加到您的package.json

{
  ...
  "scripts": {
    "postinstall": "echo postinstall time; ./node_modules/grunt-cli/bin/grunt <your task name>"
  },
  ...
}

https://npmjs.org/doc/scripts.html

重要警告:

  • 您可能必须在postinstall脚本中更改grunt二进制文件的路径,如果grunt命令未执行,请检查错误输出。
  • grunt并且grunt-cli必须dependency在您的计算机中列出为,package.json以便由Heroku安装。将它们列出在下面devDependencies是不够的,因为Heroku不会安装它们。另外,请注意,Heroku不会将其安装为全局软件包,因此要在Heroku上执行它,您将必须使用相对路径(如上配置)。

如果这不起作用(您可能需要稍微弄些相对路径),那么您可能需要考虑为Heroku编写自己的自定义buildpack。

更新资料

从0.4开始,grunt软件包不再包含grunt二进制文件,而二进制文件现在已成为grunt-cli软件包的一部分。答案已更新以反映这一点。



 类似资料:
  • 问题内容: 我正在使用webpack。 另外,我不提交所有生成的文件所在的npm_modules文件夹和公用文件夹。在部署和设置服务器(已经在寻找公用文件夹)之后,我不知道如何构建我的应用程序(我有webpackbuild命令)。 在上传之前提交似乎是个坏主意。也许有一些温柔的决定…有什么想法吗? 问题答案: “heroku-postbuild”: “webpack -p –config ./we

  • 问题内容: 我正在使用gulp以及gulp插件,例如gulp-minify-css,gulp-uglify等(在我的应用程序中列为npm依赖项)。 另外,我不提交所有生成的文件所在的npm_modules文件夹和公用文件夹。而且,在部署和设置服务器(已经在寻找公用文件夹)之后,我不知道如何构建我的应用程序(我有gulp build命令)。 在上传之前提交似乎是个坏主意。也许有一些温柔的决定…有什么

  • 我有一个Java web应用程序,在我的jar文件中嵌入了Tomcat。我可以用Docker容器化应用程序,并用命令java-jar-myapp.jar运行它,但我不能在Heroku中运行那个容器。我尝试使用heroku CLI进行dockerize和部署,但heroku给了我一个“无法访问jarfile”的错误。 我试图通过使用heroku deploy:jar部署我的fat jar来解决这个问

  • 问题内容: 我正在尝试在Heroku上使用Flask开发我的第一个“大型”应用程序,并尝试将此处的基本教程与以下说明结合:https : //devcenter.heroku.com/articles/python与以下说明:http:// flask.pocoo.org/docs/patterns/packages/#larger- applications。它在本地与“先行启动”一起工作,但是

  • 我想第一次使用docker发布我在spring boot中制作的应用程序。然而,在发布时出现了一个问题。 因此,我上传到conter的图像不显示。 以下是我采取的步骤,我将立即添加我使用gradle的步骤。 > 我将Docker插件下载到IntelliJ 我创建了一个Dockerfile,其中我放了: 音量 /tmp ARG JAR_文件 在终端中,我键入以下命令来构建项目: chmod 777

  • 我已经尝试了许多配置来部署我的Restful Springboot2应用程序到heroku使用proplfile无济于事。我已经尝试了这里的一些建议/解决方案。 Procfile: Heroku日志:。 非常感谢任何对此的帮助。