NodeJS前置知识

CommonJS 和 ES6 Module 究竟有什么区别

commonJS是民间发布的,在es6发布前,官方一直没有出台node模块化相关的内容,在es6出现之后官方就发不了es6 module模块化。所以一个是之前民间的,一个是后来官方出台的。

  • commonJS之默认导出,指的是需要导出一个就行

//m1.js
var val = 'this is commonjs'
module.exports = val

//m2.js
var m1 = require('./m1.js')
console.log(m1) //this is commonjs
  • commonJS之常规导出,指的是需要导出多个

//m1.js
var val = 'this is commonJS'
var fo = 'fo'

module.exports.val = val
module.exports.fo = fo

//m2.js
var m1 = require('./m1.js')
console.log(m1) //{val:'this is commonjs',fo:'fo'}

由于es6 module出台太晚,而node又是2009年发布,急需一个模块化规范,所以node现在默认支持的是commonJS规范。

所以现在node要用es6 module模块化就需要做配置,否则不支持。

配置一,后缀名js改为mjs
配置二,新建package.josn,然后" type":"module"
  • es6 module之默认导出,指的是需要导出一个就行

//ex.js
var val = 'ex data'
export default val

//im.js
import val from './ex.js'
consloe.log(val)  //'ex data'
  • es6 module之常规导出,指的是需要导出多个

//ex.js
var val = 'ex data'
export {val as valName}

//im.js
import { valname as hh } from './ex.js'
consloe.log(hh) //'ex data'

关于webpack,babel,以及es6和commonJS之间的联系

  • babel:把es6的写法转换成es5的写法

  • webpack:将babel生成的commonJS规范的es5写法能够在浏览器上直接运行


npm包管理

  • npm init

对node项目进行初始化,会生成一个package.json文件【又称‘元数据配置文件’】


path.resolve和path.join的区别

两者都是拼接文件路径

  • path.resolve 获取绝对路径

  • path.join 获取在相对路径


后续补充

你可能感兴趣的:(node,node.js,vue.js,前端)