【发布时间】:2016-02-13 07:40:07
【问题描述】:
我正在构建一个简单的节点应用程序并使用 Bootstrap 来设置我的前端样式。我想通过从 GitHub 存储库加载应用程序来将应用程序部署到 Heroku。我不想把任何编译好的 CSS/JS 文件放到仓库里,也就是说从 GitHub 拉取源代码后需要在 Heroku 上编译。
问题:Bootstrap 的默认 package.json 在 devDependencies 中有其构建依赖项,因此这些依赖项不会安装在 Heroku 上,而 Heroku 在生产模式下运行 npm install。
具体来说,问题出现在我的postinstall 脚本中,该脚本由cd node_modules/bootstrap && npm install && ../.bin/grunt dist 组成。我自己的npm install 命令最终不会安装任何东西,因为总体npm install --production 忽略了Bootstrap 的devDependencies。
将 Bootstrap 的依赖项安装到本地的最佳解决方法是什么?我愿意更改我的工作流程,只要 (1) 我不必将编译后的文件放入我的源存储库中并且 (2) 我仍然可以在生产模式下运行主 npm install。
编辑:除非有人能想到更好的解决方案,否则我认为我目前的选择如下:
- 构建 Bootstrap 的自定义 Github 分支,其依赖项位于
dependencies而不是devDependencies - 构建一个自定义 Heroku 构建包,以某种方式使 Bootstrap 的依赖项保持不变
- 放弃原理,在本地编译Bootstrap,把编译好的文件放到我的源码中
- 只在开发模式下使用 Heroku(显然不是一个好主意)
我想我会尝试选项 1,如果失败则选择选项 3。我仍然有兴趣听到人们提出的任何其他想法。
【问题讨论】:
标签: node.js twitter-bootstrap heroku npm