我试图为PIXI js设置一个简单的测试环境,但在从PIXI导入时,控制台调试器卡住了。
未捕获的TypeError.Failed to resolve module specifier "pixi.js": 无法解析模块指定符 "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的原因是什么?我的猜测是:你想把整个appgame的代码捆绑在一个大的JS文件中(app.js或game.js "bundle")。
如果这是你的意图,我建议你一步一步来,确保你测试并理解每一步的全部细节。
entry
并将其指向你游戏的主JS模块。mainmenu.js
或 gameplay.js
). output
并指定你想把游戏的 "大捆绑 "放在哪里。webpack
在命令行中,确保它成功完成,仔细检查你的输出JS看起来不错(甚至不要尝试在网络浏览器中打开它)。当这一切成功后,创建index.html,并将你的游戏的 "大捆绑 "加入其中(只需根据需要手动复制文件到临时文件夹中)。如果一切正常,用webpack自动完成这一步。CopyPlugin
或与 HtmlWebpackPlugin
.
最后,确保这一切都能与游戏的生产迷你版构建,并与webpack开发的web服务器完美结合。