2016-03-04 1 views
1

У меня есть конфигурация webpack, используемая для создания серверного пакета для изоморфного приложения React. Внутри этой конфигурации я пытаюсь использовать resolve.alias для псевдонима одного модуля (parse) в качестве другого (parse/node). This handy chart около resolve.alias в документации webpack, похоже, что это должно быть возможно. Это то, что мой объект псевдоним выглядит следующим образом:webpack 1: resolve.alias не сглаживает один модуль npm другому

alias: { 
    parse: 'parse/node', 
    pubnub: 'static/deps/pubnub/pubnub-3.13.0.min.js' 
} 

Я уже использую псевдоним для модуля pubnub, и что псевдоним работает задумано. К сожалению, все, что я делаю для ключа синтаксического анализа, кажется, не менять в результате чего требуется в моем WebPack встроенного bundle.js:

/***/ function(module, exports) { 
    module.exports = require("parse"); 
/***/ }, 

Я пытаюсь решить с /node_modules/parse/node.js. Использование абсолютных/относительных путей, похоже, не работает, и не добавлено расширение .js до конца. На данный момент я не могу понять, является ли это ошибкой веб-пакета или что-то, что я пропускаю. Любая помощь будет принята с благодарностью! Вот ссылка на сутью с моей полной WebPack конфигурации: https://gist.github.com/daleee/a0025f55885207c1a00a

[email protected] 
[email protected] 
[email protected] 

ответ

2

Проблема была следующей строкой в ​​конфигурации WebPack:

..., 
externals: [nodeExternals({ 
    whitelist: ['webpack/hot/poll?1000'] 
})], 
..., 

webpack-node-externals является WebPack плагин, который используется для автоматического черный список модули найдены в node_modules. Как правило, нет необходимости связывать модули npm с вашим окончательным пакетом при создании для бэкэнд, поскольку модули npm устанавливаются в системе. Этот черный список также не позволял webpack делать какие-либо псевдонимы для любых модулей npm. Изменение whitelist массив как и решить мою проблему:

..., 
externals: [nodeExternals({ 
    whitelist: ['webpack/hot/poll?1000', 'parse'] 
})], 
..., 

Мораль этой истории: не копировать код из Макеты без полного понимания того, что он делает. Я мог бы сэкономить несколько дней головной боли, если бы просто прочитал README.md для плагинов webpack, которые я использовал.

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