【问题标题】:Yarn can't build local package correctlyYarn 无法正确构建本地包
【发布时间】:2016-11-03 15:14:42
【问题描述】:

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

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

example 文件夹内,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 完全忽略了它并将 everything 放入结果包中。 p>

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

有什么想法吗?

【问题讨论】:

    标签: node.js reactjs npm yarnpkg


    【解决方案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 文件夹,但 yarn 一个有 everything(包括 lib 和 src )

    为什么会这样?

    【讨论】:

    • yarn 似乎处理 files 错误。我昨天用 yarn 在 npm 上发布了一些东西,结果存档只是空的。使用 npm 发布,它有列出的文件和自述文件、package.json 等...
    • 请注意,此特定问题有一个未解决的问题,您的问题可能与此相关
    • 我在那里创建了一个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2021-11-15
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    相关资源
    最近更新 更多