本文作者:IMWeb 袁飞翔 原文出处:IMWeb社区 未经同意,禁止转载
// fis-conf.js
fis.hook('commonjs')
.match('/modules/common/utils', {
isMod: true,
moduleId: 'utils' // 为utils设置一个moduleId,希望以后能直接require('utils')
})
.match('::package', {
postpackager: [
fis.plugin('loader', {
resourceType: 'commonJs'
})
]
})
<!-- main.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!-- etc.. --->
<script>
require('utils')
</script>
</body>
</html>
<!-- main.html -->
<html>
<script src="/modules/common/utils.js"></script>
</html>
// /modules/common/utils.js
define('utils', function() {
// ...
})
<!-- main.html -->
<html lang="en">
<!-- 不会有utils.js的引用,也就意味着fis并不能发现用moduleId直接引用的依赖 -->
<!-- script src="/modules/common/utils.js"></script-->
</html>
// /modules/common/utils.js
define('utils', function() {
// ...
})
fis.hook('commonjs', {
paths: {
utils: '/modules/common/utils.js'
}
})
define('lib/A.js', function() {
})
<!-- main.html -->
<html>
<script>
require('modules/lib/A.js');
</script>
</html>
var A = require('lib/A.js')
编译成:
define('XX', function() {
var A = require('modules/lib/A.js')
})