一、当执行 import vue from ‘vue’ 时发生了什么?
其实在 node.js 中,执行 import 就相当于执行了 require,而 require 被调用,就会用到 require.resolve 这个函数来查找包的路径,而这个函数在 nodejs 中会有一个关于优先级的算法。
- import Vue from ‘vue’ 解析为 const Vue = require(‘vue’)。
- require 判断 vue 是否未 node.js 核心包,如我们常用的:path,fs 等,是则直接导入,否则继续往下走。
- vue 非 nodejs 核心包,判断 vue 是否未 ‘/’ 根目录开头,显然不是,继续往下走。
- vue 是否为 ‘./’、’/’ 或者 ‘…/’ 开头,显然不是,继续往下走。
- 以上条件都不符合,读取项目目录下 node_modules 包里的包。
如果写全的话是import vue from ‘…/node_modules/vue/list/vue.js’
这样写显然十分的不方便,此时在webpack.base.conf.js中进行了定义,内置了一些选项,extenions:[’.js’,’.vue’,’.json’],意思是省略后面的后缀,由webpack来自动为我们加上。
如果名字比较长,还可以起个别名。
alias:{
‘@’:re