Webpack - 从非模块化文件加载函数?

时间:2017-03-20 15:38:23

标签: javascript webpack

说我有一个文件:

//nonModuled.js
//A non moduled file  , let's say I can't "module" it

console.log('0');
function go(a)
    {
        console.log('go:' + a);
    }

我还有另一个文件,我希望得到go函数:

//1.js
require('./nonModuled.js');

当我运行html文件时,我确实看到了console.log,但我收到了go函数的错误:

enter image description here

我明白为什么会这样。另外 - 我知道我可以做这个补丁:

//nonModuled.js
//A non moduled file  , let's say I can't touch it

console.log('hello');
window.go = function go(a)
    {
        console.log('go:' + a);
    }

然后在1.js文件中,访问window.go,但这看起来很笨拙。

所以我问:

问题:

如何正确获取go功能?

如果我可以做的事情会很好:

var a= require('./nonModuled.js');
a.go()

任何帮助?

1 个答案:

答案 0 :(得分:2)

如果您无法正确导出nonModule.js go,可以使用exports loader导入它:

const go = require('exports-loader?go!./nonModule.js');