首先看以下代碼
1 import Vue from 'vue'; 2 import App from './App'; 3 import router from './router';
可能會有疑問,vue去哪里找?其實上面的代碼等同於
1 import Vue from "../node_modules/vue/dist/vue.js"; 2 import App from './App.vue'; 3 import router from './router.js';
總結:
1.import...from...的from命令后面可以跟很多路徑格式,若只給出vue這樣的包名,則會自動到node_modules中加載;若給出相對路徑及文件前綴,則到指定位置尋找。
2.可以加載各種各樣的文件:.js、.vue、.less等等。
3.可以省略掉from直接引入。
不過我的目錄結構是這樣的(只有router文件夾,沒有route.js)
import router from './router'; 這個不是vue的規定而是node加載模塊的方式,當require('./router')(import會被轉為require),node是這樣的尋找目標的:
1.首先尋找目錄下有沒有router.js或者router.node,如果有就導入
2.如果沒有看是否有router目錄,如果沒有就require失敗,拋出異常"Cannot find module './router'"
3.如果有router目錄會在其下尋找package.json文件,如果有則按照package的配置來導入
4.如果沒有package.json,看是否有index.js或者index.node,如果有就導入沒有就失敗
1.首先尋找目錄下有沒有router.js或者router.node,如果有就導入
2.如果沒有看是否有router目錄,如果沒有就require失敗,拋出異常"Cannot find module './router'"
3.如果有router目錄會在其下尋找package.json文件,如果有則按照package的配置來導入
4.如果沒有package.json,看是否有index.js或者index.node,如果有就導入沒有就失敗