Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 第4页,如何将一个模块导入到另一个模块中,这两个模块都是入口点?_Javascript_Node.js_Webpack_Phaser Framework - Fatal编程技术网

Javascript 第4页,如何将一个模块导入到另一个模块中,这两个模块都是入口点?

Javascript 第4页,如何将一个模块导入到另一个模块中,这两个模块都是入口点?,javascript,node.js,webpack,phaser-framework,Javascript,Node.js,Webpack,Phaser Framework,我是Webpack的新手,所以我的术语可能不完全正确。我要做的是首先构建一个定制的相量模块,然后将其导入另一个入口点,这取决于它 编辑:我尝试过使用分割块、动态导入和别名。但是没有用。到底有没有办法通过插件或方法来实现这一点 来自webpack.config.js: entry: { 'phaser.min': './phaser-builder.js', game: './src/index.js' }, resolve: { alia

我是Webpack的新手,所以我的术语可能不完全正确。我要做的是首先构建一个定制的相量模块,然后将其导入另一个入口点,这取决于它

编辑:我尝试过使用分割块、动态导入和别名。但是没有用。到底有没有办法通过插件或方法来实现这一点

来自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
   },
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;
//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);
phaser builder.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
   },
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;
//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);
index.js(第二个入口点)需要Phaser.min.js中的“Phaser”对象,该对象是从./Phaser-builder.js(第一个入口点)创建的,如下所示:

index.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
   },
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;
//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中导入)

如上面index.js中所述,如果我简单地使用
import'phaser'(我想是从节点\单元模块中提取的?)一切正常。但这是完整的相位器库,我不想要。我想导入我在入口点1中创建的自定义构建,它存在于/build/phaser.min.js中

如果尝试从/build/phaser.min.js导入,则会出现以下错误:

“TypeError:超级表达式必须为null或函数”


根据我的理解,这基本上是说Phaser对象/模块未定义,因此TestScene没有像预期的那样扩展Phaser.Scene。

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


谢谢。

我在Phaser 2(CE)上尝试过类似的方法,但在Gulp中效果很好,只需添加最少数量的模块,在这里查看,我将遵循此思路,因为我对Phaser 3的相同方法感兴趣。谢谢你的提问