Oro*_*vid 6 heroku node.js npm buildpack hadoop-yarn
我使用以下buildpack:heroku-buildpack-nodejs
并且默认情况下,它应该缓存和恢复node_modules。
yarn.lock文件与一起位于应用程序的根目录package.json。
我也加入"cacheDirectories": [".cache/yarn"]了package.json
在审阅应用程序构建日志分析期间,我看到:
-----> Restoring cache
Loading 1 from cacheDirectories (package.json):
- .cache/yarn (not cached - skipping)
Run Code Online (Sandbox Code Playgroud)
...
-----> Installing dependencies
Installing node modules (yarn.lock)
Run Code Online (Sandbox Code Playgroud)
...
-----> Caching build
- node_modules
Run Code Online (Sandbox Code Playgroud)
好像这个问题在2016年12月20日被打开了:https : //github.com/heroku/heroku-buildpack-nodejs/issues/359
如何在不对每个构建都安装依赖项的情况下实现缓存机制?
\n\n\nHeroku NodeJS 构建包v83不支持使用纱线安装依赖项。这是在v93中添加的。
\n
Buildpack v93 并非没有自己的问题。由于它对相对于as 的纱线缓存路径进行了硬编码。\n这会带来一个问题,因为它是临时目录,并且不能依赖它在下一个部署中存在。$build_dir$build_dir/.cache/yarn/v2$build_dir
为了演示这一点,请添加一个heroku-postbuild或heroku-prebuild命令脚本来scripts键入package.json以显示部署正在运行的文件夹。
"heroku-postbuild": "pwd"\nRun Code Online (Sandbox Code Playgroud)\n\n构建日志的部分输出
\n\n"heroku-postbuild": "pwd"\nRun Code Online (Sandbox Code Playgroud)\n\n纱线部署的一些问题在构建包的更高版本中得到解决。我建议使用最新的构建包,目前是v165
\n\n在 v165 中,缓存是从纱线缓存依赖项的临时文件夹复制到为cacheDirectorieskey in配置的package.json
目前,此功能位于功能标志后面。
\n\n为了在您的部署中启用它,请features在项目中创建一个文件。
remote: $ echo \'postbuild\'; pwd\nremote: postbuild\nremote: /tmp/build_260cb9d4ad95c7671332f8a404117b59\nremote: Done in 0.10s.\nRun Code Online (Sandbox Code Playgroud)\n\n在features文件中写入
cache-native-yarn-cache=true\nRun Code Online (Sandbox Code Playgroud)\n\n重新运行您的部署应该会生成类似以下内容的日志:
\n\nremote:\nremote: -----> Restoring cache\nremote: Loading 1 from cacheDirectories (package.json):\nremote: - .cache/yarn\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |