- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Webpack 的新手,所以我的术语可能不完全正确。我想要做的是首先构建一个自定义 Phaser 模块,然后将其导入到依赖于它的另一个入口点。
编辑:我试过使用 SplitChunks、动态导入和别名。但无济于事。有没有办法通过插件或方法来实现这一点?
来自 webpack.config.js:
entry: {
'phaser.min': './phaser-builder.js',
game: './src/index.js'
},
resolve: {
alias: {
'eventemitter3': path.resolve(__dirname, './node_modules/eventemitter3')
},
modules: [ 'node_modules/phaser/src', 'node_modules' ]
},
output: {
path: path.resolve(__dirname, 'build'),
filename: '[name].js',
library: 'Phaser',
libraryTarget: 'umd',
sourceMapFilename: '[file].map',
devtoolModuleFilenameTemplate: 'webpack:///[resource-path]',
devtoolFallbackModuleFilenameTemplate: 'webpack:///[resource-path]?[hash]',
umdNamedDefine: true
},
phaser-builder.js 的内容:
require('polyfills');
var CONST = require('const');
var Extend = require('utils/object/Extend');
var Phaser = {
... code ...
};
Phaser = Extend(false, Phaser, CONST);
module.exports = Phaser;
global.Phaser = Phaser;
index.js(第二个入口点)需要从 ./phaser-builder.js(第一个入口点)创建的 phaser.min.js 中的“Phaser”对象,如下所示:
index.js 的内容:
//import 'phaser'; //this works but it's not the custom build from entry point one.
import { Phaser } from '../build/phaser.min';
import { TestScene } from './scenes/TestScene';
const gameConfig = {
width: 680,
height: 400,
scene: TestScene
};
new Phaser.Game(gameConfig);
TestScene.js 的内容: (在 index.js 中导入)
export class TestScene extends Phaser.Scene {
preload() {
this.load.image('logo', 'assets/sprites/logo.png');
}
create() {
this.add.text(100, 100, 'Working...', { fill: '#0f0' });
this.add.image(100, 200, 'logo');
}
}
如上面 index.js 中所述,如果我简单地使用 import 'phaser';
(我想这是从 node_modules 中提取的?)一切正常。但那是完整的移相器库,我不想要。我想导入我在入口点一中创建的自定义构建,它存在于/build/phaser.min.js
如果我尝试从/build/phaser.min.js 导入,我会收到此错误:
“类型错误: super 表达式必须为空或函数”
根据我的理解,这基本上是说 Phaser 对象/模块未定义,因此 TestScene 没有按预期扩展 Phaser.Scene。
最佳答案
关于javascript - Webpack 4,如何将一个模块导入另一个都是入口点的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56506391/
我是一名优秀的程序员,十分优秀!