我正在使用此处所述的npm链接
http://npmjs.org/doc/link.html
在本地,一切都很完美,当我部署到Heroku时,我收到了错误消息
Error: Cannot find module '...'
我怎样才能让这个和Heroku一起工作?
我正在使用此处所述的npm链接
http://npmjs.org/doc/link.html
在本地,一切都很完美,当我部署到Heroku时,我收到了错误消息
Error: Cannot find module '...'
我怎样才能让这个和Heroku一起工作?
2条答案
按热度按时间uqzxnwby1#
我希望有一个优雅的解决方案(这会让我的生活轻松很多)。你的定制包是通过
npm link
符号链接到node_modules
的,但是git doesn't follow symbolic links nowadays。所以当你git push
到Heroku的时候,没有办法让你的定制包沿着去。但是,请注意,根据我的实验,Heroku会荣誉你推送的任何node_modules,而不是尝试从网络上安装它们。它本质上只是运行
npm install --production
。也许直接到你的包的开发源代码的硬链接会起作用,但我不确定Git是否会很好地发挥作用。使用风险自担!编辑:如果你想知道Heroku到底做了什么,it's all open source。
理想的情况是,如果软件包是开源的,那么就把它们放到NPM本身上,这是非常轻松和自动的。
k5hmc34c2#
如果您在GitHub(或BitBucket)上托管私有模块,可以将git repo作为依赖项添加到
package.json
中。但是,您需要授予Heroku读取您的repo的权限(假设它是私有的--这是问题的关键)。请查看this answer,以获得一组详细的说明,说明如何使用Github执行此操作。This可能对Bitbucket有所帮助。
我发现这样做会增加构建时间,这对我来说是值得的。