例如,当使用 webpack 创建 bundle 时,它输出 angular 如下。
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js");
但我希望输出是这样的:
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "@angular/core");
网上说你需要改resolve.alias
,但我的理解是如果我改了resolve.alias
,这次我找不到我使用的模块的路径。
我不是很受 webpack 支配,但我确信有解决这个问题的方法。有没有可用的解决方案?
const path = require('path');
module.exports = {
resolve: {
alias: {
//I'm stuck there
}
}
};
更新
这个问题恰好出现在以下场景中,例如 C 模块使用X 库。同时,这个 C 模块在 A 模块下打开,A 模块的子模块。模块 A 和 C 在 2 个不同的项目上编译。我将 X 库捆绑在模块 A中。我没有将X 模块捆绑在 C 模块中。因为我知道在模块 A中,这个模块 X是捆绑的。但是,C 模块开发人员从“ D:\X-Library ”文件路径获取 X 模块引用,而 A 模块开发人员从“ D :\Libraries\X-Library ”获取 X 模块引用" 文件路径。通过这些引用,Webpack 从 bundle 中调用 X 模块。最后,当在 A 模块中打开 C 模块时,当它要使用 X 模块时,它请求" D:\X-Library " as _webpack_require (" D:\X-Library ")。但是,模块 X 被模块 A 注册为_webpack_require (" D:\Librarires\X-Library ")。这就是为什么它不起作用。我希望我可以,A模块的子模块。模块A和C在2个不同的项目上编译。我捆绑了X库在模块 A 内。我没有将 X 模块捆绑在 C 模块内。因为我知道在模块 A 中,这个模块 X 是捆绑的。但是,C 模块开发人员从“ D:\X-Library ”文件路径获取 X 模块引用,而 A 模块开发人员从“ D:\Libraries\X-Library ”文件路径获取 X 模块引用。通过这些引用,Webpack 从包中调用 X 模块。最后,当在A模块内部打开C模块时,当它想使用X模块时,它请求“ D:\X-Library ”作为_webpack_require(“ D:\X-Library ”)。但是,模块 X 被模块 A 注册为_webpack_require (" D:\Librarires\X-Library“)。这就是为什么它不起作用。我希望我能。