webpack 1:resolve.alias不会将一个npm模块别名

我有一个webpackconfiguration用于为同构React应用程序创build一个服务器包。 在这个configuration里面,我试图使用resolve.alias别名一个模块( parse )作为另一个( parse/node )。 这个关于webpack文档中的resolve.alias的方便的图表看起来应该是可能的。 这就是我的别名对象的样子:

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

我已经为模块pubnub使用了别名,并且该别名在预期的情况下工作。 不幸的是,无论我对parsing键做什么,似乎都不会改变我的webpack构build的bundle.js的结果需求:

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

我试图解决/node_modules/parse/node.js 。 使用绝对/相对path似乎没有工作,也没有添加一个.js扩展到最后。 在这一点上,我不知道这是一个webpack的bug或我忽略的东西。 任何帮助将不胜感激! 这是一个链接到我的完整的webpackconfiguration的要点: https ://gist.github.com/daleee/a0025f55885207c1a00a

 node@5.7.0 npm@3.7.5 webpack@1.12.14 

这个问题是在webpackconfiguration中的以下行:

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

webpack-node-externals是一个webpack插件,用于自动将在node_modulesfind的模块列入黑名单。 由于npm模块安装在系统上,所以在构build后端时,通常不需要将npm模块与最终包捆绑在一起。 黑名单也阻止了webpack对任何npm模块进行别名。 像这样更改whitelistarrays解决了我的问题:

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

这个故事的寓意:不要复制代码,而不能完全理解它的作用。 如果我只是简单地阅读我正在使用的webpack插件的README.md ,我本可以节省几天的头痛。