Mon*_*nor 7 javascript npm yarnpkg
在我的package.json中,我有一个依赖项"protractor": "2.1.0".那个包又依赖于"jasminewd2": "0.0.5".
该jasminewd2包有一些我想要修改的行为.我下载了它的源代码并进行了我需要的更改.Yarn的文档说明了使用本地源包的可能性:
yarn add file:/path/to/local/folder安装本地文件系统上的软件包.这对于测试未发布到注册表的其他您的包非常有用.
当我执行该命令时
"jasminewd2": "file:\\CustomNodeModules\\jasminewd2"被添加到我的package.json中.这到我的yarn.lock文件:
"file:\\CustomNodeModules\\jasminewd2", jasminewd2@0.0.5:
name jasminewd2
version "0.0.5"
resolved "https://registry.yarnpkg.com/jasminewd2
/-/jasminewd2-0.0.5.tgz#528609a124dfc688c1e3f434a638e047066cd63e"
Run Code Online (Sandbox Code Playgroud)因此,node_modules/jasminewd2包含npm存储库中的原始版本.如何让纱线安装我的版本?
我相信你的解决方案不起作用,因为它jasminewd2是一个传递依赖(protractor而不是直接依赖).因此,当您直接添加时,传递的不受影响.
您可以使用两种方法解决这个问题:
yarn link按照文档中的说明进行操作.protractor并jasminewd2打包并在各自的package.jsons中引用它们.package.json的 语法是"protractor": "<githubUser>/<githubRepo>".根据我的经验,第二种方法有一个npm缓存形式的警告:HEAD只有在首次安装该依赖项时才会获取你的git repo .在那之后,它会被缓存并且每次都会重新安装 - 即使你的回购HEAD已经改变了.
这就是我通常将提交哈希作为依赖项的一部分引用的原因:"dependency": "user/repo.git#aef38fb2adc73304ae1ea87b0d607ad7fadc4d0g".我没有尝试过这个技巧yarn,但假设它的行为完全相同(通过lockfile设计).
| 归档时间: |
|
| 查看次数: |
852 次 |
| 最近记录: |