JavaScript,ECMAScript,commonJS版本概述及babel,webpack

  • Post author:
  • Post category:java


JavaScript:网页脚本语言,潜入到网页中,使得浏览器可以与网页互动

(1)借鉴C语言的基本语法;

(2)借鉴Java语言的数据类型和内存管理;

(3)借鉴Scheme语言,将函数提升到”第一等公民”(first class)的地位;

(4)借鉴Self语言,使用基于原型(prototype)的继承机制。

所以,Javascript语言实际上是两种语言风格的混合产物—-(简化的)函数式编程+(简化的)面向对象编程。

语言的标准化:ECMAScript

ECMAScript简称es

es5与es3保持基本兼容,所有主要浏览器都支持ECMAScript 5.1版的全部功能

es5:原生JSON对象、继承的方法、高级属性的定义以及引入严格模式

es6(ES2015):模块(import)和类以及一些实用特性,例如箭头函数,Maps、Sets、Promises、生成器(Generators)等

CommonJS是区别于ECMAScript的另一种规范,业界有很多它的实现,其中最著名的是node.js,另外还有Apache的CouchDB

CommonJS涵盖了模块(require)、二进制、Buffer、字符集编码、I/O流、进程环境、文件系统、套接字、单元测试、Web服务器网关接口、包管理等

Babel 是一个 JavaScript 编译器,将 采用 ECMAScript 2015+ 语法编写的代码 转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中

.browserslist用了这个就不需要大部分情况就不需要autoprefixer, stylelint, eslint-plugin-compat

> 1%
last 2 versions
not dead

babel.config.js

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ],
  env: {
    development: {
      // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
      // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
      // 开发环境import转换热更新
      plugins: ['dynamic-import-node']
    }
  }
}

es6用babel转为es5就可以运行在浏览器里

浏览器不兼容CommonJS的根本原因,在于缺少四个Node.js环境的变量

module

exports

require

global

webpack打包可以解决这个问题

由于webpack别名配置好以后,如果想要在vscode中可以正确提示路径,就需要配置jsconfig.json文件

jsconfig.json

{


“compilerOptions”: {


“target”: “ES6”,

“module”: “commonjs”,

“allowSyntheticDefaultImports”: true,

“baseUrl”: “./”,

“paths”: {


“@/

“: [“src/

”]

}

},

“exclude”: [“node_modules”]

}

而tsconfig.json文件是ts中指定了用来编译这个项目的根文件和编译选项

参考:

https://www.jianshu.com/p/11b58d1bfeed

https://www.cnblogs.com/51kata/p/5358111.html

https://www.babeljs.cn/docs/babel-preset-env

https://blog.csdn.net/shmnh/article/details/53424302

https://blog.csdn.net/weixin_43845137/article/details/122952997



版权声明:本文为weixin_49547540原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。