Dependencies 是否排除npm模块依赖关系?

Dependencies 是否排除npm模块依赖关系?,dependencies,phantomjs,environment-variables,karma-runner,decoupling,Dependencies,Phantomjs,Environment Variables,Karma Runner,Decoupling,在我正在进行的项目中,我们使用Karma测试运行程序,并帮助我们使用PhantomJS运行测试。最近,我们发现,作为karma PhantomJS launcher1.9.8的依赖项,PhantomJS版本出现了一些问题,导致我们的测试失败。幸运的是,karma phantomjs launcher允许我们将phantomjs_BIN环境变量设置为指向可替代的phantomjs二进制文件,这使得升级到2.0.0相当简单 这一切都很好,但是当我们的持续集成环境试图构建我们的项目时,它在执行npm安

在我正在进行的项目中,我们使用Karma测试运行程序,并帮助我们使用PhantomJS运行测试。最近,我们发现,作为karma PhantomJS launcher
1.9.8
的依赖项,PhantomJS版本出现了一些问题,导致我们的测试失败。幸运的是,karma phantomjs launcher允许我们将
phantomjs_BIN
环境变量设置为指向可替代的phantomjs二进制文件,这使得升级到
2.0.0
相当简单

这一切都很好,但是当我们的持续集成环境试图构建我们的项目时,它在执行
npm安装时仍然在拉下PhantomJS
1.9.8
二进制文件,因为它需要安装
karma PhantomJS启动器
,它依赖于PhantomJS
1.9.8

由于我们的构建服务器已配置为使用我们提供的
2.0.0
二进制文件,因此确实不需要下载
1.9.8
二进制文件,如果可能的话,我希望它不这样做


那么,我有没有办法配置我的package.json来告诉karma phantomjs launcher它不需要拉下它的phantomjs
1.9.8
依赖项?

使用一个没有依赖项的模块:

phantomjs包从第三方网站下载phantomjs。虽然可以通过确保路径中有正确的PhantomJS版本来防止此下载,但这并不总是可行的

从依赖项中删除phantomjs,并要求您显式设置phantomjs的路径

或者将其从default package.json中删除。例如,在Linux shell上:

cd node_modules/karma-phantomjs-launcher
vi package.json
删除
依赖项
声明:

  "dependencies": {
    "phantomjs": "~1.9"
    },
参考资料


您是否有机会使用TravisCI或CircleCI?我们已经在Circle上解决了上述问题,使用了源自Travis设置的解决方案。如果答案是否定的,那么我怀疑这个解决方案会对你有多大好处。我们的构建(使用mocha phantomjs)也有同样的问题@KasperLewau,我想听听你们是怎么在CI上解决的?这无疑是我们npm安装的瓶颈。