3

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

 - 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,我可以看到我的库已正确构建,然后添加到example\node_modules\. 一切都和预期的一样。

但是,当我用 尝试相同的事情时yarn install,它没有用——注意我已经清除了 Yarn 缓存,所以这不是缓存问题。问题是,在运行时yarn install,Yarn 似乎不尊重我在根文件夹中的 package.json,即

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

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

它告诉 npm 只lib在结果包中包含文件夹——npm 很好地遵循了说明,但似乎 Yarn 完全忽略了它,并将所有内容都放在了结果包中。

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

有任何想法吗?

4

1 回答 1

1

我鼓励大家试一试。

-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:../"
}

测试差异

  1. cd root\example\; npm install

  2. cd root\example\; yarn install

比较结果root\example\node_modues\parent\

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

为什么会这样?

于 2016-11-03T15:42:35.620 回答