VUE前端工程化-1

75 阅读2分钟

ES6模块化

​ ES6模块化规范中定义:
​ 1).每一个js文件都是独立的模块
​ 2).导入模块成员使用import关键字
​ 3).暴露模块成员使用export关键字

​ ES6模块化是浏览器端和服务器端通用的规范.

在NodeJS中安装babel

  1. 安装babel,bable就是一个语法转换器,将高级的具有兼容性的js代码转为低级的没有兼容想性性js代码。
    打开终端,输入命令:npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node
    安装完毕之后,再次输入命令安装:npm install --save @babel/polyfill
  2. 创建babel.config.js
    在项目目录中创建babel.config.js文件。
    编辑js文件中的代码如下:
const presets = [
            		["@babel/env",{
               			 targets:{
                   		 edge:"17",
                    	 firefox:"60",
                    	 chrome:"67",
                    	 safari:"11.1"
              			  }
            		}]
        	 ]
//暴露
module.exports = { presets }
  1. 创建index.js文件
    在项目目录中创建index.js文件作为入口文件
    在index.js中输入需要执行的js代码,例如:
    console.log("ok");
  2. 使用npx执行文件
    打开终端,输入命令:npx babel-node ./index.js

ES6基本语法设置默认导入/导出

默认导出

//当前文件模块 m1.js
//私有成员
let a =10;
let c=20;
let d=30;


function show(){}

//将本模块中的私有成员暴露出去,供其他模块使用
export default{
    a,
    c,
    show
}//没有向外暴露d,所以外界访问不到

默认导入

import 接收名称 from “模块标识符”,如下:

//导入模块
import m1 from "./m1.js"
cosole.log(m1);
//输出{a:10,c:20,show:[Function:show]}

注意:在一个模块中,只允许使用export default向外默认暴露一次成员,千万不要写多个export default。
如果在一个模块中没有向外暴露成员,其他模块引入该模块时将会得到一个空对象

设置按需导入/导出

按需导出

//当前文件m1.js

//向外按需导出变量s1
export  let s1="aaa"
//向外按需导出变量s2
export let s2 ="bbb"
//按需导出方法
export function say =function(){}

按需导入

import { num,fn as printFn ,myName } from "./test.js"
同时导入默认导出的成员以及按需导入的成员
import test,{ num,fn as printFn ,myName } from "./test.js"使用as起别名
注意:一个模块中既可以按需导入也可以默认导入,一个模块中既可以按需导出也可以默认导出

直接导入并执行代码

只想单纯执行某个模块中的代码,并不需要得到模块中向外暴露的成员。

import "./test2.js";