Closed wzup closed 8 years ago
When you use the key "loader", only a string is expected. Use "loaders" if you want ot pass an array.
Am 14.02.2016 um 04:46 schrieb wzup notifications@github.com:
This throws an error:
}, { test: require.resolve("jquery"), loader: ["imports?$=jquery,jQuery=jquery"] }],
This error:
$ webpack --config webpack.development.config.js -cd --progress --watch 20% 1/6 build modulesc:\Users\user\app\node_modules\webpack-core\lib\LoadersList.js:58 if(element.loader) return element.loader.split("!"); ^
TypeError: element.loader.split is not a function at getLoadersFromObject (c:\Users\user\app\node_modules\webpack-core\lib\LoadersList.js:58:43) at LoadersList.
(c:\Users\user\app\node_modules\webpack-core\lib\LoadersList.js:78:12) at Array.map (native) at LoadersList.match (c:\Users\user\app\node_modules\webpack-core\lib\LoadersList.js:70:19) at c:\Users\user\app\node_modules\webpack\lib\NormalModuleFactory.js:111:68 at c:\Users\user\app\node_modules\async\lib\async.js:726:13 at c:\Users\user\app\node_modules\async\lib\async.js:52:16 at done (c:\Users\user\app\node_modules\async\lib\async.js:246:17) at c:\Users\user\app\node_modules\async\lib\async.js:44:16 at c:\Users\user\app\node_modules\async\lib\async.js:723:17 at c:\Users\user\app\node_modules\async\lib\async.js:167:37 at c:\Users\user\app\node_modules\enhanced-resolve\lib\UnsafeCachePlugin.js:29:4 at onResolved (c:\Users\user\app\node_modules\enhanced-resolve\lib\Resolver.js:39:10) at innerCallback (c:\Users\user\app\node_modules\enhanced-resolve\lib\Resolver.js:89:22) at loggingCallbackWrapper (c:\Users\user\app\node_modules\enhanced-resolve\lib\createInnerCallback.js:21:19) at c:\Users\user\app\node_modules\tapable\lib\Tapable.js:134:6 at c:\Users\user\app\node_modules\enhanced-resolve\lib\ModulesInDirectoriesPlugin.js:55:11 at c:\Users\user\app\node_modules\enhanced-resolve\lib\Resolver.js:191:15 at c:\Users\user\app\node_modules\enhanced-resolve\lib\ModulesInDirectoriesPlugin.js:46:14 at loggingCallbackWrapper (c:\Users\user\app\node_modules\enhanced-resolve\lib\createInnerCallback.js:21:19) at c:\Users\user\app\node_modules\tapable\lib\Tapable.js:134:6 at c:\Users\user\app\node_modules\enhanced-resolve\lib\Resolver.js:123:21 at c:\Users\user\app\node_modules\enhanced-resolve\lib\Resolver.js:191:15 at applyPluginsParallelBailResult.createInnerCallback.log (c:\Users\user\app\node_modules\enhanced-resolve\lib\Resol s:104:30) at loggingCallbackWrapper (c:\Users\user\app\node_modules\enhanced-resolve\lib\createInnerCallback.js:21:19) at c:\Users\user\app\node_modules\tapable\lib\Tapable.js:134:6 at Tapable. (c:\Users\user\app\node_modules\enhanced-resolve\lib\DirectoryDescriptionFilePlugin.js:68:32) at loggingCallbackWrapper (c:\Users\user\app\node_modules\enhanced-resolve\lib\createInnerCallback.js:21:19) at c:\Users\user\app\node_modules\enhanced-resolve\lib\Resolver.js:123:21 at c:\Users\user\app\node_modules\enhanced-resolve\lib\Resolver.js:191:15 — Reply to this email directly or view it on GitHub https://github.com/webpack/imports-loader/issues/18.
@IngwiePhoenix are you sure? Then how about this answer? https://github.com/webpack/imports-loader/issues/17#issuecomment-178701473
try loader: ['imports-loader?angular'], instead of loaders: ['imports-loader?angular'],
@IngwiePhoenix and actually you're right. It works if loader: String
. So that guy was wrong, he gave wrong answer and I followed that.
Array does not have a split method, but String does. When using "loader:", WebPack expects a string and uses .split() on it with an exclamation point as the deliminator to extract loaders. Basically, you could imagine it this way:
var loaders = loaderList[matchedIndex].split("!")
Closing since this is a user error. In webpack v2 you'll get a very clear error message for an error like this.
This throws an error:
This error: