是否可以在 2 个不同的文件夹中查找 js 模块,同时将一个优先于另一个?
Is it possible to lookup a js module in 2 different folders while priortizing one over the other?
我需要创建一个高度可定制的 web 应用程序,想知道是否以及如何结合使用 es6 模块加载和 webpack 来覆盖更大应用程序堆栈的单个文件。
所以假设我的目录结构如下:
./src
|--/core
|--|--moduleA.js
|--|--moduleB.js
|--|--app.js
|--/theme
|--|--moduleB.js
我的app.js内容就像
import moduleA from "./moduleA";
import moduleB from "./moduleB";
console.log(moduleA); // out: i am from core!
console.log(moduleB); // out: i am from theme!
所以 theme/ 目录简单地覆盖了核心文件...
有没有办法通过 webpack 加载器配置来解决这个问题,或者我是否必须 运行 预构建,其中我将所有文件从核心复制到第三个位置,然后是相同的主题目录,然后是第三个目录的构建。
我知道如何用第三个位置和合并的 src 文件解决这个问题,但我更愿意用 webpack 解决这个问题。
resolve modules应该可以。
您可以将 core
和 theme
作为模块添加。首先定义 theme
以便 webpack 首先查找那里。
modules: [
path.resolve(__dirname, "src/theme"),
path.resolve(__dirname, "src/core"),
'node_modules',
]
然后导入没有相对路径的模块。就 from "moduleA"
我需要创建一个高度可定制的 web 应用程序,想知道是否以及如何结合使用 es6 模块加载和 webpack 来覆盖更大应用程序堆栈的单个文件。
所以假设我的目录结构如下:
./src
|--/core
|--|--moduleA.js
|--|--moduleB.js
|--|--app.js
|--/theme
|--|--moduleB.js
我的app.js内容就像
import moduleA from "./moduleA";
import moduleB from "./moduleB";
console.log(moduleA); // out: i am from core!
console.log(moduleB); // out: i am from theme!
所以 theme/ 目录简单地覆盖了核心文件...
有没有办法通过 webpack 加载器配置来解决这个问题,或者我是否必须 运行 预构建,其中我将所有文件从核心复制到第三个位置,然后是相同的主题目录,然后是第三个目录的构建。
我知道如何用第三个位置和合并的 src 文件解决这个问题,但我更愿意用 webpack 解决这个问题。
resolve modules应该可以。
您可以将 core
和 theme
作为模块添加。首先定义 theme
以便 webpack 首先查找那里。
modules: [
path.resolve(__dirname, "src/theme"),
path.resolve(__dirname, "src/core"),
'node_modules',
]
然后导入没有相对路径的模块。就 from "moduleA"