s94-require
v1.0.16
Published
可以在浏览器中直接使用CommonJS的模块,书写语法和nodejs一样
Downloads
7
Readme
s94-require
可以在浏览器中直接使用CommonJS的模块,书写语法和nodejs一样,模块实时绑定、循环引用不会造成内存泄漏
Install
$ npm install s94-require
使用
<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的的存放路径,否则会报错
模块不存在
循环引用
var a = require('./a');
console.log(a)
a.js
console.log('导入b之前')
const b = require('./b'); // 注意,此时a.js代码就停在这里,等待b.js执行完毕,再往下执行。
console.log(b)
console.log('导入b之后')
module.exports = '我是a模块'
b.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模块