javascript中 import 路径
import 路径
import {test} from './test';
花括号
import {test} from './test';
import test from './test';
如果有默认导出export default
则可以省略花括号,且import
的模块名是随意的,如:
// a.js export default 'test'; // b.js import a from './a'; import A from './a'; import myA from './a';
非export default
导出的模板名,在引用时须加花括号,且引用模块名与导出时的命名必须相同,如:
// a.js export const a = 'test'; // b.js import {a} from './a'; import {A} from './a'; // error import {myA} from './a'; // error
一个模块中只允许一个默认导出export default
,但允许多个命名导出export
;
路径
import test from 'test';
import test from './test';
babel
默认会把ES6的模块转化为commonjs
规范
import test from 'X'; // 等价于 var test = require('X');
查找规则:
- 如果X是内置模块,则直接返回该模块。如require('http')。
- 如果X以./、/、../开头:
- 根据X所在的父模块,确定X的绝对路径。
- 将X当做文件,依次查找下面的文件,如果找到,则直接返回。
- X
- X.js
- X.json
- X.node
- 将X当做目录,依次查找下面的文件,如果找到,则直接返回。
- X/package.json(查找main字段中的文件,规则同上)
- X/index.js
- X/index.json
- X/index.node
- 如果X不带路径:
- 根据X所在的父模块,确定X可能的安装目录。
- 依次在每个目录中,将X当成文件名或目录名加载。