問題が再現される場所は次のとおりです。
https://github.com/reggi/webpack-lerna-babel-loader-issue
目標: ./packages/usage/index.jswebpack でビルドしようとしています。
- 私は4つのパッケージを持っています
alpha,beta,gamma,usage. alpha、beta、gammaはbabelを使用していないため、index.jsを使用して消費する必要がありますusageバベルを使用しており、次を使用して変換する必要がありbabel-loaderます。その後、トラバーサルを続行する必要があります
私が試してコンパイルするbabelと、奇妙に他の依存関係が要求されます。
$ lerna bootstrap
Lerna v2.0.0-beta.20
Linking all dependencies
Successfully bootstrapped 4 packages.
$ cd packages/usage
$ npm run webpack
> @reggi/usage@1.0.0 webpack /Users/thomasreggi/Desktop/webpack-issue/packages/usage
> webpack
Hash: 27e6d9d1d4147417b516
Version: webpack 1.13.1
Time: 429ms
Asset Size Chunks Chunk Names
bundle.js 2.11 kB 0 [emitted] main
+ 3 hidden modules
ERROR in ../alpha/index.js
Module not found: Error: Cannot resolve module 'babel' in /Users/thomasreggi/Desktop/webpack-issue/packages/alpha
@ ../alpha/index.js 1:11-33
そして{ exclude: /(node_modules|bower_components)/ }有効にすると、これが得られます。
$ npm run webpack
> @reggi/usage@1.0.0 webpack /Users/thomasreggi/Desktop/webpack-issue/packages/usage
> webpack
Hash: 99d08ad8b664833bba1c
Version: webpack 1.13.1
Time: 401ms
Asset Size Chunks Chunk Names
bundle.js 2.25 kB 0 [emitted] main
+ 4 hidden modules
ERROR in ../alpha/~/@reggi/beta/index.js
Module not found: Error: Cannot resolve module 'babel' in /Users/thomasreggi/Desktop/webpack-issue/packages/alpha/node_modules/@reggi/beta
@ ../alpha/~/@reggi/beta/index.js 1:17-82
バンドルの種類
babel-loader除外せずにnode_modules
モジュール \"@reggi/beta\" が見つかりません
除外babel-loaderありnode_modules
モジュール \"/Users/thomasreggi/Desktop/webpack-issue/packages/beta\" が見つかりません
&なしbabel-loaderでコードを切り替えるrequire
すべてを完全に含みます。