javascript - 如何使用 webpack 导出函数

标签 javascript webpack

我打算使用 webpack 捆绑我所有的 .js。 我尝试了一个非常简单的示例,如下所示。

捆绑在 test.js 文件中的函数:

function test() {
  console.log('hello');
}

网络包配置:

module.exports = [{
  {
    output: {
      filename: 'test.js',
      path: __dirname + '/public/javascript/dist'
    },
    entry: [
      './public/javascript/test.js'
    ]
  }
]

测试代码:

<html>
<head></head>
<body>

    <script src="./javascript/dist/test.js"></script>

<script type="text/javascript">

window.onload = function()
{
    test();
}

</body>
</html>

但我收到以下错误:Uncaught ReferenceError: test is not defined.

问题:为什么?

[编辑] 响应是:缺少“导出”。 多亏了这一点,我更新如下:

要导出的代码:

export function Test() {
  this.t = 1;

  Test.prototype.toto = function()
  {
    console.log('hello')
  }
}

Webpack 配置文件:

{
output: {
  filename: 'test.js',
  path: __dirname + '/public/javascript/dist',
  library: 'test',
  libraryTarget: 'window'
},
entry: [
  './public/javascript/poc/test.js'
]
}

要创建对象,我必须这样做:var t = new test.Test(); 有点重...有没有办法只需要 make : var t = new Test(); ?

最佳答案

why?

因为您没有从入口点导出任何内容,而且默认情况下,webpack 会生成 umd 格式的输出,而不会污染全局范围。

您首先必须导出您的函数:

export default function test() {
  console.log('hello');
}

然后在您的 webpack 配置中指定“library”和“libraryTarget”。 Docs .例如:

output: {
  filename: 'test.js',
  path: __dirname + '/public/javascript/dist',
  library: 'test',
  libraryTarget: 'window',
  libraryExport: 'default'
},

这将生成添加 window.test = _entry_return_.default 的代码。

关于javascript - 如何使用 webpack 导出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45817227/

相关文章:

javascript - $(selector).val() 不起作用

javascript - 我通过脚本创建一个按钮。我可以通过点击按钮来调用其他函数吗?我这样做,但失败了

javascript - 将参数传递给 Angular 中 @Injectable 的构造函数?

javascript - Webpack 4、postcss-loader 和 autoprefixer 插件

javascript - webpack css-loader localIdent 名称哈希长度

reactjs - webpack options 有一个未知的属性 'hotOnly' 。无效的选项对象。已使用选项对象初始化开发服务器

javascript - 如何编写一个 JavaScript 函数,它接受一个字符串并打印出该字符串的每个字母?

javascript - 在表中显示/隐藏值

vue.js - 如何修复 : this. setDynamic 不是函数

vue.js - vue js index.html中的 “process.env”变量如何