path.resolve()
方法会将路径或路径片段的序列解析为绝对路径。
var path = require("path") //引入node的path模块
path.resolve('/foo/bar', './baz') // returns '/foo/bar/baz'
path.resolve('/foo/bar', 'baz') // returns '/foo/bar/baz'
path.resolve('/foo/bar', '/baz') // returns '/baz'
path.resolve('/foo/bar', '../baz') // returns '/foo/baz'
path.resolve('home','/foo/bar', '../baz') // returns '/foo/baz'
path.resolve('home','./foo/bar', '../baz') // returns '/home/foo/baz'
path.resolve('home','foo/bar', '../baz') // returns '/home/foo/baz'
从后向前,若字符以 / 开头,不会拼接到前面的路径(因为拼接到此已经是一个绝对路径
);
若以 ../ 开头,拼接前面的路径,且不含最后一节路径;
若以 ./ 开头 或者没有符号 则拼接前面路径;
webpack中resolve用法
举例:引入vue.esm.js
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: { //alias配置项通过别名来把原导入路径映射成一个新的导入路径。 这样做可能会命中太多的导入语句,alias 还支持 $ 符号来缩小范围到只命中以关键字结尾的导入语句:
'vue$': 'vue/dist/vue.esm.js', // 把导入语句里的 vue$ 关键字替换成 vue/dist/vue.esm.js 。 vue$ 只会命中以 vue 结尾的导入语句,即只会把 import 'vue' 关键字替换成 import 'vue/dist/vue.esm.js' 。
'@': resolve('src'),
}
},
Path.join([path1],[path2]) 连接路径