問題が再現される場所は次のとおりです。
https://github.com/reggi/webpack-lerna-babel-loader-issue
目標: ./packages/usage/index.js
webpack でビルドしようとしています。
- 私は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
すべてを完全に含みます。