gpt4 book ai didi

javascript - webpack 1 : resolve. 别名不是将一个 npm 模块别名到另一个

转载 作者:行者123 更新时间:2023-11-29 21:32:39 28 4
gpt4 key购买 nike

我有一个 webpack 配置,用于为同构 React 应用程序创建服务器包。在该配置中,我尝试使用 resolve.alias 将一个模块 (parse) 别名为另一个 (parse/node)。 This handy chart关于 webpack 文档中的 resolve.alias 看起来这应该是可能的。这是我的别名对象的样子:

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 错误还是我忽略了什么。任何帮助将不胜感激!这是我完整的 webpack 配置的要点链接:https://gist.github.com/daleee/a0025f55885207c1a00a

node@5.7.0
npm@3.7.5
webpack@1.12.14

最佳答案

问题出在 webpack 配置中的以下行:

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

webpack-node-externals是一个 webpack 插件,用于自动将 node_modules 中的模块列入黑名单。在为后端构建时,通常不需要将 npm 模块与最终 bundle 捆绑在一起,因为 npm 模块已安装在系统上。这个黑名单还阻止了 webpack 对任何 npm 模块做任何别名。像这样更改 whitelist 数组解决了我的问题:

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

这个故事的寓意:在没有完全理解样板的作用之前,不要从样板中复制代码。如果我只是阅读我正在使用的 webpack 插件的 README.md,我本可以省去几天的头痛。

关于javascript - webpack 1 : resolve. 别名不是将一个 npm 模块别名到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35785877/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com