我使用的是grunt插件grunt-contrib-copy,也使用了grunt插件grunt-contrib- mincss(在我的应用程序中列为npm依赖项)。
grunt-contrib-copy
grunt-contrib- mincss
另外,我不提交所有生成文件所在的npm_modules文件夹和public文件夹。grunt build在部署和设置服务器(已经在寻找public文件夹)之后,我不知道如何构建我的应用程序(我有命令)。
npm_modules
public
grunt build
我看到了类似的东西grunt-heroku-deploy,但是在上传之前提交似乎是个坏主意。也许有一些温柔的决定…有什么想法吗?
grunt-heroku-deploy
npm支持某个postinstall步骤(在其他步骤中),这可能正是您想要的。
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在包的生命周期中发生某些事情时运行自定义脚本(包括)。
npm install
scripts
package.json
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
重要警告:
grunt-cli
dependency
devDependencies
如果这不起作用(您可能需要稍微弄些相对路径),那么您可能需要考虑为Heroku编写自己的自定义buildpack。
从0.4开始,grunt软件包不再包含grunt二进制文件,而二进制文件现在已成为grunt-cli软件包的一部分。答案已更新以反映这一点。