使用webpack,require的一个疑问。

首先,我有两个文件。main.js和config.js

其中test.js的源码如下:

function test_aa(){
    console.log('aa');
}

class config {

    constructor() {
        this.is_debug = 0;
    }

}

let configObj = new config();

module.exports = configObj;

main.js的源码如下:

let configObj = require('./test.js')
test_aa();
console.log(configObj);

如果使用webpack,就会提示报错

test_aa is not defined

因为test_aa函数没有使用module.exports。

如果我按照以前的方式,也就是不用webpack:

<script src="../js/test.js"></script>
<script src="../js/main.js"></script>

我即使都不用module.exports,也不会报错的。

所以问题就来了。因为我的项目很多js都是第三方的,我不可能每个函数都加上module.exports。如何解决这个问题呢?


好像查了很多资料,都是必须module.exports的。问题是很多第三方库,难道要一个一个过去改吗?要不然就用不了了。

----解决方案----
最后老老实实加上module.exports了。也不费多大的劲。模块化是个好习惯。
至于其他第三方的。npm都有直接安装。都是模块化的,我多虑了。

阅读 2.1k
1 个回答

导出一个文件也可以这样写

//test.js
export const name='jeremy';
const test_aa = () => {return 1}
export default test_aa

当你引用这个test.js的时候,
如果你这样写

import fun from './test.js'

那么fun就是test_aa这个函数。

import {name} from './test.js'

那么name就是这个文件的name=jeremy

推荐问题
宣传栏