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}
使其成为全局的。有什么理由不在范围内的包中调用它吗?您是在创建库还是它是应用程序的一部分?