resolve.alias可以设置路径别名,但是对于没有设置路径别名的模块,而且一些特定的模块位于非标准位置时,可以使用 resolve.modules 来优化模块解析的性能(webpack会按照resolve.modules的顺序查找),特别是在大型项目中。
用例一: 将常用或项目内部的模块目录放在resolve.modules前,提高构建性能
webpack.config.js
const SpeedMeasurePlugin = require("speed-measure-webpack-plugin");
const smp = new SpeedMeasurePlugin();
const path = require('path'); const config = {entry: './src/index.js',output: {filename: 'main.js'},mode: 'development',resolve: { modules: [path.resolve(__dirname, 'share'), 'node_modules'], },
}// 使用插件包装你的配置
module.exports = smp.wrap(config);
src/index.js
import moduleA from 'utils'; console.log(moduleA());
share/utils.js
export default function() { return 'Hello from module A!';
}
这样就会优先从share公司内部模块的目录查找,找到了就提高效率,找不到再从node_modules, 再找不到就报错