zoukankan      html  css  js  c++  java
  • JS语法之--模块化

    1、模块化

      

    2、ES6 模块化:(使用原生支持的,但是编译器不支持,网页也不支持,所以需要一个工具链,babel)

      import 语句,导入一个模块导出的绑定

      export语句,从模块中导出函数,对象,值的,供其他模块import导入用

      导出:

        建立一个模块目录src , 然后在这个目录下新建一个moda.js ,内容如下:

        

        

        导入

        index.js中导入语句如下:

        

        转译工具:

        转译 就是从一种语言代码转换到另一种语言代码,当然也可以从高版本到低版本的支持语句

        由于JS 存在不同版本,不同浏览器兼容的问题,使用 transplier 转译工具解决。

        babel (转译工具)ES2016,17,18都可以使用

        开发中可以使用较新的 ES6 语法,通过转译器转换为指定的某些版本代码

        官网:http://babeljs.io/

        参考文档 https:// babeljs.io/docs/en/6.26.3/index.html

        注意当前版本7.x 有了较大的闭环,参考6.x的文档

        预设

        有如下一些预设presets (ES2015 --ES 6)

        (需要记住 第一个 和 recat)

        

        

    3、离线转译安装配置

      1、初始化npm

        

      2、设置镜像

        .npmrc 文件

        可以放到npm 的目录下npmrc 文件中

        可以放到用户家目录中

        可以放到项目根目录下

        本次放到项目根目录中,内容如下:(也可以先创建文件,在写入)

        

      3、安装

        项目更目录下执行

        

          

        --save-dev 说明:

          当你为你的模块安装一个依赖模块时,正常情况下你得先安装它们(在模块根目录下 npm install module_name)

          然后连同版本号手动将他们添加到模块配置文件package.json 中的依赖(dependencies),开发用

        --save 和--save-dev 可以省略掉你手动修改package.json文件的步骤:

          npm install module_name --save 自动把模块和版本号添加到dependencies 部分

          npm install module_name 自动把模块和版本号添加到devdependencies 部分

          

      4、修改package.json    

        替换为 srcipts 部分       

        

        babel src -d lib 意思是从src 目录中 转译后的文件输出到 lib 目录

      5、准备目录

        项目根目录下创建 src 和 lib 目录

        src 是原码目录

        lib 是目标目录

      6、配置babel 和安装 依赖

        在根目录下创建 .babelrc  文件, Json格式

        

          env 可以根据当前环境自动选择。

          安装依赖:

              

      7、准备js 文件

        在src 中的moda.js

          

        在src 目录下index.js

          

          直接在VS Code 的环境下执行出错,所以需要转义为ES5 代码,在项目根目录下执行命令

          

          可以看到,2个文件被转译

          运行文件:

          

        使用babel 等转译器转译JS 非常流行

        开发者可以在高版本中使用新的语法特性,提高开发效率,把兼容性问题交个转译器处理

      8、导入导出

         说明:导出代码都在src/moda.js 中,导入代码都写在src/index.js 中

        缺省导入导出

          只允许一个缺省导出,缺省导出可以是变量,函数,类,但是不能 使用let ,var,const 关键字作为默认导出

        

        

         

           缺省导入的时候,可以自己重新命名,可以不需要和缺省导出的名称一致,但是最好一致

          缺省导入,不需要写在 import后 的 {  } 中 : import A, { foo } from "./moda"

          只能有一个 缺省导出

         命名导入导出

                

           结果:  

       

         也可以使用下面的方式 ,导入所有导出,但是会顶一个新的名词空间,使用名词空间可以避免冲突

        

      

    为什么要坚持,想一想当初!
  • 相关阅读:
    PAT 1097. Deduplication on a Linked List (链表)
    PAT 1096. Consecutive Factors
    PAT 1095. Cars on Campus
    PAT 1094. The Largest Generation (层级遍历)
    PAT 1093. Count PAT's
    PAT 1092. To Buy or Not to Buy
    PAT 1091. Acute Stroke (bfs)
    CSS:word-wrap/overflow/transition
    node-webkit中的requirejs报错问题:path must be a string error in Require.js
    script加载之defer和async
  • 原文地址:https://www.cnblogs.com/JerryZao/p/9977954.html
Copyright © 2011-2022 走看看