javascript - 无法将 PIXI js 作为模块导入
问题描述
我正在尝试为 PIXI js 设置一个简单的测试环境,但控制台调试器在从 PIXI 导入时阻塞
未捕获的类型错误:无法解析模块说明符“pixi.js”。相对引用必须以“/”、“./”或“../”开头。
Pixi.js 已经安装了npm install pixi.js
我对 webpack 没有经验,但这似乎是问题所在。
index.html
:
<!DOCTYPE html>
<html>
<head>
<title>Pixel Animator</title>
<meta charset="UTF-8" />
</head>
<body>
<script type="module" src="index.js"></script>
</body>
</html>
index.js
:
import * as PIXI from "pixi.js"
...
webpack.config.js
:
const path = require('path');
const CopyPlugin = require('copy-webpack-plugin');
module.exports = {
entry: './src/app.js',
mode: 'development',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'app.js'
},
devServer: {
contentBase: './dist'
},
plugins: [
new CopyPlugin([
{ from: 'src/index.html', to: './' },
{ from: 'src/style.css', to: './' },
]),
],
};
知道是什么原因导致这种情况发生吗?
解决方案
如果我正确理解了您的问题,则此错误发生在浏览器中。正确的?
如果是这种情况,最可能的罪魁祸首是您直接在浏览器中通过 index.html 加载 index.js。浏览器自然找不到 pixi.js 而失败。是的,你可能正在通过 webpack 开发服务器加载 index.html,但它对你没有任何用处。
首先使用 webpack 的原因是什么?我的猜测是:您想将整个应用程序/游戏代码捆绑到单个大 JS 文件中(app.js 或 game.js “捆绑包”)。
如果这是您的意图,我建议您逐步进行,确保您测试并详细了解每个步骤:
- 从一个空的 webpack.config.js 开始
- 添加
entry
并将其指向游戏的主 JS 模块。 - 将一些“导入”添加到主 JS 文件(PIXI 和您自己的模块,如
mainmenu.js
orgameplay.js
)。 - 添加
output
并指定您想要放置游戏“大包”的位置 - 在命令行中运行
webpack
,确保它成功完成,仔细检查你的输出 JS 看起来不错(甚至暂时不要尝试在 Web 浏览器中打开它)。
当这可行时,创建 index.html 并将生成的游戏“大包”包含到其中(只需根据需要手动将文件复制到临时文件夹中)。如果一切正常,请使用 webpackCopyPlugin
或HtmlWebpackPlugin
.
最后,确保这一切都适用于游戏的生产缩小版本,以及 webpack 开发 Web 服务器。
推荐阅读
- azure - 如何将应用程序从 AzureDevOps 部署到 Azure 中的自定义 VM?
- python - SQLAlchemy @property 在棉花糖中使用 dump_only 导致“未知字段”错误
- assembly - 在函数调用后弹出 RBX 会使我的函数出现段错误,为什么?
- java - Java 程序有编译错误但运行成功
- javascript - 如何将变量从 JS 发送到我的 Laravel 控制器
- android - 按下返回键时如何退出ZXing的扫描模式
- php - PHP MySQLi 不执行 INSERT 查询
- python - 删除熊猫数据框中的相似词
- python-3.x - While 循环未按预期存在
- r - 为数据框定义行和列分隔符