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が、yarn にはすべて( lib と src の両方)があります。

なぜそのような場合があるのですか?

于 2016-11-03T15:42:35.620 に答える