可以导入一次模块,并使用 webpack 将方法提供给多个模块



我正在尝试学习如何在webpack中使用模块。我相信我现在明白了,如果一个模块从另一个模块调用一个方法,它必须被导入。

我不明白的是,在多个模块调用另一个模块中定义的方法的情况下,我该怎么办?

处理这种情况的正确方法是将所需的模块导入每个 js 模块文件吗?

是对象.js

const isObject = (a) => (!!a) && (a.constructor === Object);
export {isObject}

查找注释.js

import {isObject} from './isObject';
const findNote = ( notes, id ) => {
return isObject( notes.findIndex(function( note ){
return note.id === id;
}) );
}
export {findNote}

过滤器注释.js

import {isObject} from './isObject';
const filterNotes = ( notes, filter ) => {
return isObject( notes.filter(function( note ){
return note.title.toLowerCase().includes( filter.toLowerCase() ) );
});
}
export {filterNotes}

我猜你是新来的。

Node.js将缓存模块。每个模块只需加载一次

webpack 是一个脚本捆绑器。它具有"入口点"的概念,并为每个入口点构建一个或多个脚本包。

因此,如果您将findNote.js作为入口点,或者如果存在导入(直接或间接(findNote.js的现有入口点,则包括isObject.js在内的所有依赖项都将包含在此捆绑包中。

filterNotes.js同样的故事.如果将其设置为另一个入口点,则其代码及其依赖项(包括isObject.js(将包含在该入口点的另一个捆绑包中。

因此,isObject.js将被包含在几个捆绑包中。这可以通过一些优化来防止。

最新更新