2015-07-21 6 views
4

Я следую за http://alexomara.com/blog/webpack-and-jquery-include-only-the-parts-you-need, чтобы связать части jQuery с помощью webpack.Применить загрузчика к определенному файлу

// webpack.config.js 
module.exports = { 
    entry: './entry', 
    output: { 
     filename: 'bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /jquery\/src\/selector\.js$/, 
       loader: 'amd-define-factory-patcher-loader' 
      } 
     ] 
    } 
}; 

Оказывается, что node_modules/jquery/src/selector.js нуждается в его собственный загрузчик из-за проблем AMD. Но загрузчик не применяется. Я работаю под окнами, и, возможно, нужно настроить регулярное выражение? Я пробовал разные выражения, но не повезло.

Любые предложения по отладке? Новое в webpack.

Как было предложено, я добавил:

profile: true, 
stats: { 
    reasons: true, 
    chunkModules: true, 
    chunkOrigins: true, 
    modules: true, 
    cached: true, 
    cachedAssets: true, 
    source: true, 
    errorDetails: true, 
    publicPath: true, 
    excludeModules: [ 
    /e\.js/ 
    ] 

Запуск webpack --display-modules урожайности

Hash: 4a092c0d4d9e158a9bd7 
Version: webpack 1.10.1 
Time: 970ms 
    Asset Size Chunks    Chunk Names 
    bundle.js 876 kB  0 [emitted] main 
[0] ./entry.js 529 bytes {0} [built] 
    factory:13ms building:12ms = 25ms 
... 
[14] ./~/jquery/src/traversing/var/rneedsContext.js 110 bytes {0} [built] 
    [0] 25ms -> [11] 161ms -> [13] 473ms -> factory:196ms building:3ms dependencies:1ms = 859ms 
[15] ./~/jquery/src/selector.js 33 bytes {0} [built] 
    [0] 25ms -> [16] 172ms -> factory:449ms building:180ms = 826ms 
[16] ./~/jquery/src/manipulation.js 15 kB {0} [built] 
    [0] 25ms -> factory:16ms building:156ms dependencies:443ms = 640ms 
... 

Нет ошибок. Ничего не ценного.

+0

Включены ли все диагностические сообщения в 'config.stats'? Таким образом, вы можете увидеть, поражен ли загрузчик или нет. –

+0

Впервые я услышал термин config.stats. Вы говорите о параметре профиля? В любом случае, я уверен, что его никогда не называют. На самом деле я могу ввести фиктивное имя и до сих пор не получить ошибок. – Cerad

+0

Это плохо документировано, но вот пример [webpack stats config] (https://github.com/webpack/webpack/blob/76230e4a4e4389e622c04ead1d79a7a7e122bd21/test/statsCases/chunks/webpack.config.js). Можете ли вы показать пример выводимого кода для этого модуля? –

ответ

5

Очевидно, что Webpack не нормализует разделители путей, поэтому мы должны изменить регулярное выражение для размещения разделителей каталогов в стиле Windows.

Это независимое от платформы регулярное выражение, которое вы можете использовать, поэтому оно может работать как на системах * nix, так и на Windows.

{ test: /jquery[\\\/]src[\\\/]selector\.js$/, loader: 'amd-define-factory-patcher-loader' } 

Я также обновил сообщение в блоге, чтобы использовать эту форму. Если у вас все еще есть проблемы, дайте мне знать!

Полное описание: Я написал сообщение в блоге, на которое ссылается этот вопрос, и выяснил этот вопрос сегодня.

1

Не уверен, что если вы когда-нибудь нашли решение это самостоятельны, однако основываясь на комментарии для оригинальных статей:

http://alexomara.com/blog/webpack-and-jquery-include-only-the-parts-you-need/

Оказывается, правильное регулярным выражение при работе на Windows, является:

test: /jquery\\src\\selector\.js$/, loader: "amd-define-factory-patcher-loader" 

Надеюсь, что это поможет!

Смежные вопросы