layers icon indicating copy to clipboard operation
layers copied to clipboard

How can I use this lib with ES6 import?

Open lgraziani2712 opened this issue 7 years ago • 12 comments

I'm trying to use this addon, but I'm getting errors like this one: DisplayGroup is not a constructor when I try to import from pixi-display.

How can I use it if there is no export statement?

Thank you

lgraziani2712 avatar Apr 03 '17 20:04 lgraziani2712

I don't know about ES6 target. My recommendation is not to use pixi and pixi-display as ES6 imports at all, only as global. If you know how to wrap it, modify "bin/pixi-display.js" the way you want it.

ivanpopelyshev avatar Apr 03 '17 21:04 ivanpopelyshev

If you find the way it works, I'll try to modify TS source that way too.

ivanpopelyshev avatar Apr 03 '17 21:04 ivanpopelyshev

Can you explain why it is recommended to use PIXI as a global variable?

Thank you!

By the way, I will try to make it work with es6 import/export :)

lgraziani2712 avatar Apr 05 '17 11:04 lgraziani2712

+1

jlost avatar Apr 15 '17 03:04 jlost

Hi @lgraziani2712 ,

you could try import * as PIXI from 'pixi.js'; import 'pixi-display'; for expample... it works for me

also I used http://scottmcdonnell.github.io/pixi-examples/index.html?s=display&f=zorder.js&title=Z-order&plugins=pixi-display example

hameleonick avatar Apr 27 '17 13:04 hameleonick

Doesn't it seem wrong that you should "have" to import PIXI as *, rather than just importing the pieces you need in that module?

Either way, I realized that I can achieve the same things I wanted to use this plugin for by just designing with more Containers, and gave up on trying to make it work with my setup.

jlost avatar Apr 27 '17 13:04 jlost

you also could do like this import 'pixi-display'; import {DisplayGroup, DisplayList} from 'pixi.js';

hameleonick avatar Apr 27 '17 13:04 hameleonick

Just put bin in your repo. It works!

ByronHsu avatar Jan 26 '18 07:01 ByronHsu

you can require this js

let pixi_display = require('@/components/page/scene/pixi-layers')
//pixi-layers.js
(function (factory) {
  if ( typeof define === 'function' && define.amd ) {
    // AMD. Register as an anonymous module.
    define(['jquery'], factory);
  } else if (typeof exports === 'object') {
    // Node/CommonJS style for Browserify
    module.exports = factory;
  } else {
    // Browser globals
    factory(jQuery);
  }
}(function ($) {
  var pixi_display
 //some about pixi_display code
}))

yyman001 avatar Feb 05 '18 04:02 yyman001

Simply import 'pixi-layers' and then new PIXI.display.Layer() works.

Scharnvirk avatar Apr 10 '18 10:04 Scharnvirk

FYI, you can do this to augment PIXI types with this lib's types too (requires typescript 3.8):

import * as PIXI from 'pixi.js';
import type {} from 'pixi-layers'; // typescript now knows about PIXI.display.Layer, etc. 

globalThis.PIXI = PIXI;
require('pixi-layers');

connorjclark avatar May 10 '20 08:05 connorjclark

I had some trouble setting up my dev environment. I am using webpack via Laravels mix configuration. The import instructions from the docs work for me excpet I get a lot of warning when compiling: "export 'display' (imported as 'PIXI') was not found in 'pixi.js' Anyone know how to avoid those warnings?

pr4xx avatar Dec 19 '20 12:12 pr4xx