import语法参考
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/import
https://www.jb51.net/article/147127.htm
https://zhuanlan.zhihu.com/p/144475026
https://www.cnblogs.com/kreo/p/11069640.html
import全局代码
// 仅为副作用而导入一个模块: 运行模块中的全局代码, 但实际上不导入任何值
import '/modules/my-module.js';
import 'js-base64';
require('js-base64')
import用法
// 导入默认值
import defaultExport from "module-name";
// 混合导入,default必须首先声明
import defaultExport, { export1 [, [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import * as name from "module-name";
// 导入单个接口
import { export1 } from "module-name";
// 导入带有别名的接口
import { export1 as alias } from "module-name";
// 导入时重命名多个接口
import { export1,
export2 as alias2,
anotherLongModuleName as short,
} from "module-name";
// 导入多个接口
import { export1 , export2 } from "module-name";
import { foo , bar } from "module-name/path/to/specific/un-exported/file"
// 动态import
let module = await import('/modules/my-module.js');
import('/modules/my-module.js')
.then((module) => {
// Do something with the module.
});
es6 Module
import {Component} from 'react';
import * as React from 'react'
nodejs commonjs模块
const { Compnent } = require('react');
const React = require('react');
import 结构赋值报错
import不能结构赋值,直接导入该对象的name属性,会报错
import { obj: {name} } from ‘./export.js’ 报错
import语法为啥不支持结构赋值?
export.js 经过 webpack 和 babel 的转换,不符合babel的解析规则
import { obj } from './export.js'
// 经过 webpack 和 babel 的转换,变为:
"use strict";
var _export = require("../export")
// 正确的用法
import { obj } from './export.js'
const {name} = _export.obj // 变量可以结构赋值,import不支持结构赋值