如何在模块中使用 matter.js
2021-08-18
536
这是一个初学者问题。我需要将 matter.js 实现到模块内构建的项目中。当我尝试像这样的简单导入时:
import "./matter.js";
我收到以下错误:
Uncaught TypeError: Cannot set property 'Matter' of undefined
at webpackUniversalModuleDefinition (VM609 matter.js:36)
at VM609 matter.js:37
正确的做法是什么?抱歉,这是一个新手问题。只是在任何地方都找不到答案。
2个回答
将 matter.js 文件中的第 37 行替换为
})(this || window, function() {
而不是
})(this, function() {
然后输入
import './matter.js';
Matter.whatever;
至少对我来说有效!
Joseph Coppin
2021-09-01
ESM 构建
虽然
Joseph Coppin 的答案
有效,但我发现它很令人沮丧,因为它会污染浏览器
window
并在升级时需要手动编辑。
幸运的是,经过一番搜索,我发现 Matter.JS 现在有一个真正的 ESM 构建,您可以通过切换 jsDelivr 来选择它!
import Matter from 'https://cdn.jsdelivr.net/npm/[email protected]/+esm'
这很好用,我只需下载文件并将其放在我的项目目录中即可。这样,它甚至可以在本地托管,例如。
import Matter from './matter.esm.js'
oelna
2024-07-08