Javascript Webpack-如何使编译后的函数在HTML文档中可用?

Javascript Webpack-如何使编译后的函数在HTML文档中可用?,javascript,webpack,Javascript,Webpack,我有一个网页脚本 const webpack = require('webpack'); const path = require('path'); module.exports = (env, options) => ({ entry: "./clickscape.js", output: { path: path.resolve(__dirname, '../priv/static/js'), filename: 'clickscape-bundle.js'

我有一个网页脚本

const webpack = require('webpack');
const path = require('path');

module.exports = (env, options) => ({
  entry: "./clickscape.js",
  output: {
    path: path.resolve(__dirname, '../priv/static/js'),
    filename: 'clickscape-bundle.js'
  },
  plugins: [
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery'
    })
  ]
})
这会生成一个包。在我的
clickscape.js
中,有一些功能我希望能够在加载包的HTML页面中访问,即:

<script src="http://localhost:4000/js/clickscape-bundle.js"></script>
<script>do_something_clickscape_dot_js()</script>

做点什么吗?点击景观
似乎因为webpack混淆了它编译的所有代码,所以在它之外调用什么并不明显


我需要做什么才能使我的呼叫正常工作?

除非这样的变量是全局变量,否则您不能。这通常是一件好事,因为它可以防止您自己的变量和其他(外部)脚本的变量之间的名称冲突

在我的clickscape.js中,有一些我希望能够实现的功能 在加载捆绑包的HTML页面中访问(…)

如果您一定要在HTML页面中访问它们,可以在
/clickscape.js
中将它们设置为全局:

window.do\u something\u clickscape\u dot\u js=function(){
//你的代码
}
现在
do\u something\u clickscape\u dot\u js()
可以在HTML页面中工作。但是为什么不直接在
/clickscape.js
中调用它呢

const do\u something\u clickscape\u dot\u js=()=>{
//在这里做点什么
}
/*
*在此文件中调用函数与调用函数具有相同的效果
*在HTML页面中的脚本标记中
*/
做点什么吗?单击scape\u dot\u js();

我想不出一个你一定要在HTML页面中调用它的用例,但是如果你想:使用全局调用。

它不是全局调用。您可以通过将其定义为
window.do\u something\u clickscape\u dot\u js=()=>{//your code}
使其成为全局的。有什么理由不在范围内的包中调用它吗?您是在创建库还是它是应用程序的一部分?