简体   繁体   中英

Is it possible to have a separate node_modules folder for devDependencies?

I've got a Node app that I'm deploying to Heroku. Their docs say it's best practice to check in your node_modules directory (ie don't gitignore it), for faster deploys and for dev/prod parity.

In my package.json , I've got loads of devDependencies (mostly Grunt plugins and all their deps) and a few regular production dependencies like Express. Heroku only needs the production deps. I'd rather not check in all my dev deps, because they come to about 50MB.

Is there some way to have a separate folder for you dev deps, eg node_modules_dev ? If this was possible, then I could just add node_modules_dev to my .gitignore , and check in the regular production node_modules directory as per Heroku's advice.

Is there any way to do this? Or can you think of another way to do what I'm trying to do?

I use a CI server to build, test, and deploy my files — so I was looking for a similar solution that would prevent me from needing to deploy extra dependencies and/or re-build on Heroku.

After all my tests run, I run npm prune --production , which removes devDependencies from node_modules , and then I push the result to Heroku.

No extra files go to the server, and deployment times are much faster since Heroku avoids having to build all the binaries usually found in Gulp/Grunt plugins.

If you don't mind checking them in anyways, and your only concern is the resulting slug size (ie: not your git repo size, or transfer of that repo to Heroku), then simply add the relevant node_modules to .slugignore .

Docs: Ignoring files with .slugignore .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM