搜索
javascript - requirejs中shim使用
黄舟
黄舟 2017-04-10 15:47:37
[JavaScript讨论组]

对不符合AMD规范的js脚本使用shim做导出配置,哪里不对?
demo:https://github.com/xiaodongzai/demos/tree/gh-pages/requirejs_shim

<!-- index.html -->
<!DOCTYPE html>
<html>
<head lang="zh">
    <meta charset="UTF-8">
    <title>shim的使用</title>
</head>
<body>

<script src="./js/require.js" data-main="./js/app"></script>
</body>
</html>
//app.js
require.config({
    baseUrl: "./js",
    paths:{
        'jquery': "jquery",
        'log': 'log'
    },
    shim:{
        'log':{
            deps: ['jquery'],
            exports: 'log'
        }
    }
});

require(['jquery','log'], function ($,log) {
    log.writeLog('测试测试!!!');
});
//log.js
function writeLog(x){
    document.write(x);
}

异常信息:

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
巴扎黑
require(['jquery','log'], function ($,log) {
    console.log(log);
});

打印出来是什么?

PHP中文网

你的log模块没有定义,所以不能require。
你的log.js里面应该这样写:

define(function(){

var log = {};
log.writeLog = function(str){

document.write(str);

};
return log;
});

伊谢尔伦

app.js修改如下:
注意:exports只会输出某一个方法或变量

//app.js
require.config({
    baseUrl: "./js",
    paths:{
        'jquery': "jquery",
        'log': 'log'
    },
    shim:{
        'log':{
            deps: ['jquery'],
            exports: 'writeLog'
        }
    }
});

require(['jquery','log'], function ($,log) {
    log('测试测试!!!');
});
高洛峰

想问下楼主,这个问题解决了没有

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号