Javascript 网页包1:resolve.alias不将一个npm模块别名为另一个
我有一个用于为同构React应用程序创建服务器包的webpack配置。在该配置中,我试图使用Javascript 网页包1:resolve.alias不将一个npm模块别名为另一个,javascript,node.js,webpack,Javascript,Node.js,Webpack,我有一个用于为同构React应用程序创建服务器包的webpack配置。在该配置中,我试图使用resolve.alias将一个模块(parse)别名为另一个模块(parse/node)。webpack文档中的aboutresolve.alias,看起来这应该是可能的。这就是我的alias对象的外观: alias: { parse: 'parse/node', pubnub: 'static/deps/pubnub/pubnub-3.13.0.min.js' } 我已经在为模块pu
resolve.alias
将一个模块(parse
)别名为另一个模块(parse/node
)。webpack文档中的aboutresolve.alias
,看起来这应该是可能的。这就是我的alias对象的外观:
alias: {
parse: 'parse/node',
pubnub: 'static/deps/pubnub/pubnub-3.13.0.min.js'
}
我已经在为模块pubnub
使用别名,并且该别名可以在预定的时间工作。不幸的是,我对parse键所做的任何操作似乎都不会改变我的webpack buildedbundle.js
:
/***/ function(module, exports) {
module.exports = require("parse");
/***/ },
我正在尝试解析为/node\u modules/parse/node.js
。使用绝对/相对路径似乎不起作用,也没有在末尾添加.js
扩展。在这一点上,我不知道这是一个网页错误还是我忽略了什么。任何帮助都将不胜感激!以下是我的完整网页配置的要点链接:
问题在于网页包配置中的以下行:
...,
externals: [nodeExternals({
whitelist: ['webpack/hot/poll?1000']
})],
...,
是一个网页包插件,用于自动将node\u modules
中的模块列入黑名单。在为后端构建时,通常不需要将npm模块与最终捆绑包捆绑在一起,因为npm模块安装在系统上。此黑名单还阻止webpack对任何npm模块进行任何别名处理。像这样更改白名单
数组解决了我的问题:
...,
externals: [nodeExternals({
whitelist: ['webpack/hot/poll?1000', 'parse']
})],
...,
这个故事的寓意是:在不完全理解样板文件的功能的情况下,不要复制样板文件中的代码。如果我只是简单地阅读我正在使用的网页插件的README.md
,我就可以省去几天的头痛
...,
externals: [nodeExternals({
whitelist: ['webpack/hot/poll?1000', 'parse']
})],
...,