纱线不能正确地build立本地包装

我正在构build我自己的包,我也有一个在我的项目中的示例文件夹。 我的项目结构是这样的:

- node_modules - example -node_modeules - my-library -index.html -index.js -package.json - src -library.jsx package.json 

示例文件夹中, package.json文件具有:

 "dependencies":{ "my-library":"file:../" } 

当我运行npm install ,我可以看到我的库已经正确构build,然后添加到example\node_modules\ 。 一切都如预期一样。

然而,当我尝试yarn install相同的事情,它没有工作 – 注意我清除了Yarncaching ,所以这不是一个caching问题。 问题是,当运行yarn install ,似乎纱不尊重我的package.json根文件夹,即

根文件夹内package.json文件包含

 "name":"my-library" "version":"1.0.0" "main":"lib/result.js" "files":"["lib"]" 

它告诉npm只在结果包中包含lib文件夹–npm正好遵循这个指令,但似乎Yarn完全忽略了它,并把所有的东西放在结果包中。

注意:如果我将我的库发布到npmregistry,然后做yarn install my-library一切都按预期工作。

有任何想法吗?

我鼓励大家试一试。

 -root - example -package.json -lib -lib.js -src -test.js package.json 

root \ package.json中 ,请尝试

 "main":"lib\lib.js" "files":["lib"] 

然后在root \ example \ package.json中有

 dependencies:{ "parent":"file:../" } 

来testing差异

  1. cd root\example\; npm install

  2. cd root\example\; yarn install

比较root\example\node_modues\parent\

npm一个只有lib文件夹,但是纱线有一切 (lib和src)

为什么是这样的情况?