Vue使用import … from …来导入组件,库,变量等,from后的来源可以是js,vue,json,这个是在webpack.base.conf.js中设置的
module.exports = {
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'@': resolve('src')
}
}
...
}
上面定义的这3类可导入文件,js和vue是可以省略后缀的
import test from './test.vue' 等同于: import test from './test'
import test from './test.js' 等同于:import test from './test'
而 json 不可以省略后缀
若test.vue,test.js同时存在于同一个文件夹下,则import的导入优先级是:js>vue
若from的来源是文件夹,那么在package.json存在且设置正确的情况下,会默认加载package.json;若不满足,则加载index.js;若不满足,则加载index.vue
// from 读取逻辑,json>js>vue
if(
package.json存在 &&
package.main字段存在 &&
package.main指定的js存在
) {
取package.main指定的js作为from的来源,即使该js可能格式或内容错误
} else if(index.js存在){
取index.js作为from的来源
} else {
取index.vue作为from的来源
}