javascript - Uncaught ReferenceError - 如何访问 webpack 捆绑的函数

标签 javascript webpack

我正在使用https://github.com/sloria/cookiecutter-flask对于一个项目,我试图将 javascript 函数添加到由 webpack 捆绑的 js 文件中,并从 html 访问它。我想我错过了一些基本的东西。

背景源文件:

我将以下代码添加到plugins.js:

function foo () {
    console.log('bar')
}

并尝试从 html 文档调用它进行测试,如下所示

<script type="text/javascript">
    foo();
</script>

我可以看到我的函数已被捆绑,但我无法访问它。 output code

这是我得到的错误: Error in browser

我已经必须将公开加载程序添加到我的 webpack.config.js 中才能使 jquery 按照 this issue 工作。 : enter image description here

最佳答案

根据我的经验,当我使用 Webpack 时,我将代码捆绑到模块中,这将它们封装到该模块的范围内。我希望在模块外部可用的代码我显式导出,然后导入require将其放入我想要的新范围中访问它。

听起来您希望在全局范围内可以访问您的某些代码,以便直接从您的标记访问它。要在浏览器中执行此操作,最好的选择是将其直接附加到 Window 对象。可能首先检查以确保您没有覆盖该 namespace 中已有的内容:

function foo() {
    console.log('bar!');
}

if (!Window.foo) {
    Window.foo = foo;
} else {
    console.warn('Foo is already assigned!');
}

也就是说,我建议您避免以这种方式进行开发——污染全局命名空间通常不是一个好的模式,并且会导致很多潜在的冲突。如果您必须以这种方式工作,至少将一个对象分配给附加到Window的命名空间,您可以在其中放置应用程序功能,而不会冒与其他Window<冲突的风险。/属性:

Window.myApp = {
    foo: function () {
        console.log('bar!');
    }
}

Window.myApp.printGreeting = function () {
    console.log('Hello!');
}

// ...etc

关于javascript - Uncaught ReferenceError - 如何访问 webpack 捆绑的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49341403/

相关文章:

javascript - 包与其内部 node_modules 包依赖关系无关,而是使用外部范围

javascript - “function” 是 JavaScript 类型吗?

javascript - javascript中的关键代码

javascript - 从音频中获取对数字节频率数据

javascript - 嵌套函数中的回调

javascript - 值被添加到数组中两次,我不明白为什么

javascript - 使用 webpack 将 react 和 react-router 导出到独立的 html 文件时,应用程序不运行

javascript - d.ts文件导出模块

typescript - Vue 2 单文件组件不适用于仅运行时构建

javascript - 将 getChildContext() 传递给 ReactJS 高阶组件会在 Webpack 中引发意外的 token 错误