webpack打包原生js

我要用webpack打包原生js,
然后写了个小demo测试一下:
我写了个test.js文件

module.exports = {
    alertMsg:function(){
        alert(1);
    }
}

然后在入口文件entry.js里面导入这个文件

'use strict';
let a = require('./home/test.js');

module.exports = {a};

下面index.html文件

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <script src="./common/jquery.min.js"></script>
    <script src="./bundle.js"></script>
</head>
<body>
    <div id="head"></div>
    <div>
        <button id="btn" onclick="alertMsg()">click</button>
    </div>
</body>
<script>
    window.alertMsg = a.alertMsg;
</script>
</html>

提示a未定义,我不知道是哪里理解出错,是对es6的module?!
迫切希望得到帮助。。。感谢

阅读 7.2k
4 个回答

entry.js中加一行代码就行了
window.a = a;
a是一个模块,不是一个全局变量,需要挂在windows上才可以。

这....

在entry.js中, 的确有export a这个变量, 但这些都是在ES6的环境下.你可以再添加一个新的文件, 如demo.js:
let a = require('./entry.js')
然后再去使用它.

但如果像
window.alertMsg = a.alertMsg, 这么写肯定不对的.

建议还是打好基础先!
ES5 ES6滥用

你需要使用webpack 打包UMD模块。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题