Heroku节点_模块未缓存
我有toplevel package.json,其中我根据 因此,toplevel中没有依赖项,但我有frontend/package.json和mockserver/package.json,其中有许多依赖项安装在各自的node_模块中。这是各个package.json的外观(例如mockserver): 这可以正常工作并进行部署,但它不会缓存定义为缓存的两个节点_模块 以下是heroku build的输出:Heroku节点_模块未缓存,heroku,npm,node-modules,buildpack,Heroku,Npm,Node Modules,Buildpack,我有toplevel package.json,其中我根据 因此,toplevel中没有依赖项,但我有frontend/package.json和mockserver/package.json,其中有许多依赖项安装在各自的node_模块中。这是各个package.json的外观(例如mockserver): 这可以正常工作并进行部署,但它不会缓存定义为缓存的两个节点_模块 以下是heroku build的输出: -----> Creating runtime environment
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NPM_CONFIG_PRODUCTION=true
NODE_VERBOSE=false
NODE_ENV=demo
NODE_MODULES_CACHE=true
npm scripts will see NODE_ENV=production (not 'demo')
https://docs.npmjs.com/misc/config#production
-----> Installing binaries
engines.node (package.json): 7.10.0
engines.npm (package.json): unspecified (use default)
Downloading and installing node 7.10.0...
Using default npm version: 4.2.0
-----> Restoring cache
Loading 2 from cacheDirectories (package.json):
- frontend/node_modules (not cached - skipping)
- mockserver/node_modules (not cached - skipping)
-----> Building dependencies
Installing node modules (package.json)
-----> Caching build
Clearing previous node cache
Saving 2 cacheDirectories (package.json):
- frontend/node_modules (nothing to cache)
- mockserver/node_modules (nothing to cache)
-----> Build succeeded!
请注意,这两个node_模块是在以前的版本中安装的,但它表示(不是缓存-跳过)
提前谢谢 我在这里得到了答案:
总之,我应该使用heroku postbuild而不是start脚本来安装自定义依赖项。并且仅将start用作应用程序启动命令
顶级package.json
"scripts": {
"heroku-postbuild": "npm --prefix frontend run installAndCompile && npm --prefix mockserver run installAndCompile",
"start": "npm --prefix mockserver start"
},
"scripts": {
"installAndCompile": "npm install && npm run compile"
},
子项目的package.json
"scripts": {
"heroku-postbuild": "npm --prefix frontend run installAndCompile && npm --prefix mockserver run installAndCompile",
"start": "npm --prefix mockserver start"
},
"scripts": {
"installAndCompile": "npm install && npm run compile"
},