我在 Webpack 中遇到了关于相对路径的问题。让我试着解释一下这个场景:
我在Workspace 目录中有 2 个单独的项目:
- 项目-A [使用 Gulp 捆绑]:稳定且有效
- Project-B [Bundling using Webpack]:新建项目
由于两个项目都使用相同的样式,所以我想将项目 A的 SCSS 文件 [由标准变量、预定义布局、模态、类等组成] 重用到项目 B 中。
现在,如果我尝试在 Project-B index.scss 中导入 Project-A index.scss 作为另一个部分 [注释掉背景图像 URL 依赖项],webpack 能够生成所需的 CSS 输出文件。
// Import Project A SCSS [Common Varibles, Classes, Styling etc]
@import "../../../../Project_A/assets/stylesheets/index";
但是由于 Project-A 的 index.scss 进一步引用了来自相应相对路径的背景图像,webpack 构建抛出错误
“在 XYZ/Project-B/Source/Stylesheets 中找不到文件/目录”。
确切的错误块:
./src/assets/stylesheets/index.scss module构建失败:ModuleNotFoundError:找不到module:错误:无法解析“文件”或“diWorkSpace\Project_B\src\assets\stylesheets”
我无法理解,为什么 Webpack 无法解析 Project-A 中资产的相对路径,并且仍在查看 'Project B' 内部。
这是模拟问题的代码库 URL:https : //github.com/raviroshan/webpack-build-issue/tree/master/WorkSpace
重现步骤。
- 下载回购。
- 浏览 Project_B 文件夹,并进行 NPM 安装。
- 运行'webpack'。当相对图像 URL 代码被注释掉时,它会正确构建。
- 现在放回注释的代码行:https : //github.com/raviroshan/webpack-build-issue/blob/master/WorkSpace/Project_A/assets/stylesheets/index.scss#L27