zoukankan      html  css  js  c++  java
  • es6 模块化

    ES6模块化

     

    创造原因:现在的web系统越来越庞大、复杂,需要团队分工,多人协作,大型系统的javascript文件经常存在复杂的依赖关系,后期的维护成本会越来越高。

    JavaScript模块化正式为了解决这一需求而诞生。

     

     环境配置:

    目前浏览器不支持ES6模块化的语法,所以我们在node里进行测试。

    通过babel解决这个问题

    通过babel编译js代码

    1. 创建一个文件夹以及目录结构
    • src 文件夹: 里面放源代码就行

     

    2. 在当前文件夹下执行npm init

    可以通过cd 且目录,没事多点tab,可以自动补全路径

    一路点回车就行。(项目的名字不能是中文)

     

    3.安装babel的依赖
    // 命令行执行的
    npm install --save-dev @babel/core @babel/cli @babel/preset-env
    npm install --save @babel/polyfill

     

    4. 添加babel的配置

    在项目根目录下创建babel.config.json的文件,在里面写

    {
        "presets": [
            [
                "@babel/env",
                {
                    "targets": {
                        "edge": "17",
                        "firefox": "60",
                        "chrome": "67",
                        "safari": "11.1"
                    },
                    "useBuiltIns": "usage"
                }
            ]
        ]
    }

      

    5. 执行编译命令

    在项目根目录下执行

    npx babel  src --out-dir lib

     

    6. 想运行哪个js的脚本就用node执行这个脚本就行了

    node .lib.js

     

    导出Export

    导出Export:作为一个模块,它可以选择性地给其他模块暴露(提供)自己的属性和方法,供其他模块使用。


    导入Import


    导入Import:作为一个模块,可以根据需要,引入其他模块的提供的属性或者方法,供自己模块使用。

    默认导入导出  

    import aMoudule from "./a.js"
     
    export default {
        name,
        say
    }

    普通导入导出

    import { name as myname } from "./a.js"//as作用重新赋名
     
    //2、普通导出
    export {
        name,
        say
    }

    整体导出:

    import * as obj from "./a.js"
  • 相关阅读:
    通过注册表找网站绝对路径
    西普学院Crypto之用户名和密码
    西普学院Crypto之一段奇怪的代码
    西普学院Crypto之先有鸡还是先有蛋
    西普学院Crypto之摩擦摩擦
    西普学院Crypto之凯撒是罗马共和国杰出的军事统帅
    各类文件的文件头标志[转]
    收藏的几个脑图
    同源策略详解及绕过[转]
    Python学习#1
  • 原文地址:https://www.cnblogs.com/guirong/p/13611700.html
Copyright © 2011-2022 走看看