gpt4 book ai didi

javascript - Webpack 4,如何将一个模块导入另一个都是入口点的模块?

转载 作者:行者123 更新时间:2023-11-30 06:15:24 25 4
gpt4 key购买 nike

我是 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。

最佳答案

对于 webpack,我按照以下方式添加了特定的相位器构建,我希望这是您正在寻找的,或者至少会让您知道我们如何使用 webpack

phaser build file

entry point for the phaser chunk

谢谢。

关于javascript - Webpack 4,如何将一个模块导入另一个都是入口点的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56506391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com