UNPKG

s94-require

Version:

可以在浏览器中直接使用CommonJS的模块,书写语法和nodejs一样

60 lines (47 loc) 1.49 kB
# s94-require > 可以在浏览器中直接使用CommonJS的模块,书写语法和nodejs一样,模块实时绑定、循环引用不会造成内存泄漏 ## Install ``` $ npm install s94-require ``` ## 使用 ```html <script src="node_modules/s94-require/index.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> //引用 var md5 = require('md5'); //项目中没用md5模块的自行npm console.log(md5('123')); </script> ``` >注意:由于require方法在查找模块的时候,是在当前项目对应模块目录查找,而当前项目的模块目录,是根据index.js的路径来推算的,所以不要改变index.js的的存放路径,否则会报错 `模块不存在` ## 循环引用 ```js var a = require('./a'); console.log(a) ``` a.js ```js console.log('导入b之前') const b = require('./b'); // 注意,此时a.js代码就停在这里,等待b.js执行完毕,再往下执行。 console.log(b) console.log('导入b之后') module.exports = '我是a模块' ``` b.js ```js console.log('导入a之前') const a = require('./a'); // 发生了"循环引用",系统会去a.js模块对应对象的exports属性取值 console.log(a) // 因为a.js还没有执行完,只执行第一行和第二代码,所以此时a的值是一个空对象 console.log('导入a之后') module.exports = '我是b模块' ``` 打印 ``` 导入b之前 导入a之前 {} 导入a之后 我是b模块 导入b之后 我是a模块 ```