如何仅在开发模式下有条件地导入模块(在我的情况下是axios-mock-adapter
包)。此外,代码甚至不应该出现在生产包中。
我只想在开发过程中包含示例代码:
export const mockUpClient = (api: AxiosInstance): void => {
// full api mocking, containing lots and lots of data
}
现在我根据以下条件导入模块:
if (process.env.NODE_ENV === 'development') {
import("./apiMockAdapter").then((module) => {
module.mockUpClient(api)
})
}
该代码仍包含在 build中,但它不会在生产模式下执行。怎么可能从生产包中完全排除代码(当然在每次构建之前不注释掉代码)?
更新
上面的例子工作正常。在问这个问题之前,我还从其他地方导入了文件,这导致了这种行为。
接受的答案详细解释了 webpack 将如何捆绑代码和模块。