ECMAScript简称es,即常见的es5,es6,是不同的js规范(import export)。
Babel编译器将es6转化为向前兼容的js语法,使得能让其在浏览器通用。
CommonJs用于node.js,(处理I/O、OS,文件系统,DB等:require、module、exports、global,浏览器不兼容CommonJs,没有这些变量)。
Nodejs编译器两种规范都能识别:.js文件视情况而定,也可以在package.json中设置它的默认编译语法;.cjs是CommonJs,.ejs是ECMAScript。
npm是node.js的包管理器,项目中的package.json【1】则是项目对包、元数据、配置信息等的描述(如版本号、开发者、入口文件、命令脚本)。npm install 在无package-lock.json【2】时会根据1记录的信息去下载依赖,1中的‘^1.0.0’指的是版本1.x.x版本都可以,而‘~1.0.0’则是1.0.x,(要锁定版本号则去掉这两个符号),默认下载最新的版本,这也就可能导致同一份1文件,在不同时间、环境下下载的包不一样导致程序运行出错。所以在实际下载时会生成2文件记录该项目下载的每个依赖的具体信息(版本、下载源等)。有了2文件再npm install就根据2的信息,能够保证同一个项目在不同开发者手里保证使用相同的依赖包。(指定下载某个版本的依赖时,会更新2)对于其他开发者来说如果1或2文件有更新则应该npm install一下了。