CommonJs中的Require和module.exports

76 阅读1分钟

require和module.exports都是common.js的语法规范,在原生的浏览器环境中,module.exports并不可用。如果js文件需要在原生的浏览器中进行运行,那么需要转换。
一般可通过webpack打包就可以在浏览器访问了。

用法示例

//file.js
module.exports = {
  // 导出一个对象
  key1: value1,
  key2: value2,
  // ...
};

// 或者

module.exports = function() {
  // 导出一个函数
  // 函数的具体实现
};

module.exports进行一个导出,通过require进行引入,这是一种浅拷贝,一个js文件只能有一个module.exports,如果有多个,只有最后一个会生效,其它的都会被后面的覆盖。

//otherFile.js

const myObject=require('./file.js')
console.log(myObject.key1) //value1
console.log(myObject.key2) //value2

myObject是指向module.exports的对象地址的,如果重新进行赋值是会改变原引用的指向的,这对其它require相同文件的使用是非常致命的,所以一般不会进行修改。