纱线无法正确构建本地包装

时间:2016-11-03 15:14:42

标签: node.js reactjs npm yarnpkg

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

 - 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 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一切都按预期工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我鼓励大家试一试。

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

root \ package.json 中,尝试

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

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

cd root\example\;    npm install

测试差异

  1. cd root\example\; yarn install

  2. root\example\node_modues\parent\

  3. 比较lib

    中的结果

    npm只有select as个文件夹,但是第一个一切(lib和src)

    为什么会出现这种情况?