javascript - webpack5 output.library 无法导入
问题描述
问题
我<script>
曾经在 HTML 中导入由 webpack5 捆绑的 index.bundle.js。但我失败了。
选项文件
//webpack.config.js
const path = require('path');
module.exports = {
entry: {
index: '/src/index.ts'
},
output: {
path: path.join(__dirname, 'dist'),
library: 'test',
libraryTarget: 'umd',
}
}
//index.ts
export function mount() {
console.log("mount")
}
//html
<script src="dist/index.js"></script>
<script>
console.log(window.mount());
</script>
错误
Uncaught TypeError: window.mount is not a function
代码
采用
yarn
npm run build
然后打开index.html,可以发现错误。
解决方案
使用您当前拥有的配置(不是将它们放在根window
对象上),您可以使用 访问您的函数window.test.mount()
,因为这就是您在library
webpack 配置中的内容。
如果要将这些函数放在根窗口对象上,则需要在代码中执行此操作:
export function mount() {
console.log("mount")
}
window.mount = mount
// etc.
您可以通过签出来看到这一点dist/index.js
(将其放入Prettier 在线工具中可以将其清理得足够可读)。
推荐阅读
- php - 如何使用 PHP 在 HTML 中添加代码然后显示它?
- ios - IOS 13 组合框架 - @Published 不起作用(“未知属性'已发布'”)
- javascript - 克隆表并在按钮后显示
- node.js - 无法从图书馆获得响应
- sql-server - 左加入并获得最大日期时间值
- c# - 无法将类型为“TestStack.White.UIItems.TabItems.TabPage”的对象转换为类型“TestStack.White.UIItems.Button”
- sql-server - 如何在SQL中整数的第一个字符后插入小数
- r - 我们如何通过从我们上传的表中获取用户的输入来添加 group?
- kotlin - BASE64 转位图
- mongoose - Axios 提出请求不更新值