webpack 1:resolve.alias 不将一个 npm 模块别名到另一个 npm 模块
webpack 1: resolve.alias not aliasing one npm module to another
我有一个 webpack 配置,用于为同构 React 应用程序创建服务器捆绑包。 在该配置中,我尝试使用 resolve.alias
将一个模块 ( parse
) 别名为另一个模块 ( parse/node
)。这个关于 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 模块与最终捆绑包捆绑在一起,因为 npm 模块安装在系统上。这个黑名单还阻止了 webpack 对任何 npm 模块进行任何别名处理。像这样更改whitelist
数组解决了我的问题:
...,
externals: [nodeExternals({
whitelist: ['webpack/hot/poll?1000', 'parse']
})],
...,
这个故事的寓意是:在没有完全理解代码的作用之前,不要从样板中复制代码。如果我只是阅读我正在使用的 webpack 插件的README.md
,我本可以节省几天的头痛。
- 尽管链接成功并已成功下载,但未找到NPM模块
- 在Meteor项目中安装并包含npm模块后出错
- 限制npm依赖模块's require(隔离)的用法
- 在Meteor Angular 1.3中使用npm模块
- Webpack通过npm将代码拆分为单独的模块,以及如何编译es6
- 有没有人能够得到这个要求或调试NPM模块在浏览器中工作
- 如何访问npm模块抛出的自定义错误对象[error:[object object]]
- NPM:取决于本地 ES6 模块(无转译)
- 利用异步 NPM 模块
- 异步加载 NPM 模块
- 将迁移的Silverlight到HTML应用程序划分为NPM模块
- 如何让我的ember.js应用程序导入从bower或npm安装的模块
- 将MQTT NPM模块导入NativeScript
- 别名带有浏览器化填充码的 npm 模块
- NPM:将多个模块和自定义脚本与browserfy相结合
- "npm运行构建“;模块解析错误”;您可能需要一个适当的加载程序来处理此文件类型&”;
- 如何使用NPM模块
- Npm.require可以'找不到节点模块
- 全局安装的NodeJS npm模块不执行节点的主/bin JavaScript文件
- npm->错误:找不到模块'可读流'