BabylonJS / Editor

Community managed visual editor for Babylon.js
http://editor.babylonjs.com/
813 stars 232 forks source link

import editor extensions in ES6 way #160

Closed sprhawk closed 3 years ago

sprhawk commented 4 years ago

I'm following guide for editor to import exported scene file into my own project which is typescript based.

I'm using import to load modules for Babylonjs

import { Scene } from "@babylonjs/core";
..

however in the Guide, I need to import Extensions from babylonjs-editor, but I found there is only a babylonjs-editor repo in npmjs, which depends on babylonjs repo instead of @babylonjs/*, so my node_modules will contain two bundle of babylonjs.

I think one ES6 friendly package for babylonjs-editor should be provided?

julien-moreau commented 4 years ago

Ouch! You are right this can be a problem. I planned to switch from the old modules to the new one and I think I'm going to do that now :)

julien-moreau commented 4 years ago

Until I'm fixing that, are you using TypeScript ? Are you also using WebPack ?

julien-moreau commented 4 years ago

Can you install the version "3.2.0-beta.4" of "babylonjs-editor-es6" and tell me if it works? :) Thanks! https://www.npmjs.com/package/babylonjs-editor-es6

instead of: import { Extensions } from "babylonjs-editor"; please use import { Extensions } from "babylonjs-editor-es6";

sprhawk commented 4 years ago

@julien-moreau Thanks I have tried, it reported following errors:

I install it using yarn add babylonjs-editor-es6

I think it lacks of some dependencies and

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/main.js
Module not found: Error: Can't resolve 'electron' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron'
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js 12:19-38
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/storage.js
Module not found: Error: Can't resolve 'electron' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/storage.js 12:19-38
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/tools.js
Module not found: Error: Can't resolve 'electron' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/tools.js 13:19-38
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/settings/settings.js
Module not found: Error: Can't resolve 'electron' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/settings'
 @ ./node_modules/babylonjs-editor-es6/build/electron/settings/settings.js 3:19-38
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/storage.js
Module not found: Error: Can't resolve 'fs-extra' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/storage.js 13:11-30
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/photoshop.js
Module not found: Error: Can't resolve 'generator-core/lib/config' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/photoshop.js 17:24-60
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/photoshop.js
Module not found: Error: Can't resolve 'generator-core/lib/generator' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/photoshop.js 15:22-61
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/photoshop.js
Module not found: Error: Can't resolve 'generator-core/lib/logging' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/photoshop.js 16:25-62
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
Module not found: Error: Can't resolve 'koa' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron'
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js 4:12-26
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
Module not found: Error: Can't resolve 'koa-bodyparser' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron'
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js 5:22-47
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/storage.js
Module not found: Error: Can't resolve 'koa-router' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/storage.js 15:18-39
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/tools.js
Module not found: Error: Can't resolve 'koa-router' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/tools.js 14:18-39
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/routes/photoshop.js
Module not found: Error: Can't resolve 'koa-router' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/routes'
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/photoshop.js 12:18-39
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/preview-scene.js
Module not found: Error: Can't resolve 'koa-socket' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron'
 @ ./node_modules/babylonjs-editor-es6/build/electron/preview-scene.js 3:11-32
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/vscode/socket.js
Module not found: Error: Can't resolve 'koa-socket' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron/vscode'
 @ ./node_modules/babylonjs-editor-es6/build/electron/vscode/socket.js 3:11-32
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
Module not found: Error: Can't resolve 'koa-static' in '/Users/user/DummpPrj/node_modules/babylonjs-editor-es6/build/electron'
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js 6:18-39
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts

ERROR in ./node_modules/babylonjs-editor-es6/package.json
Module parse failed: Unexpected token m in JSON at position 0 while parsing near 'module.exports = "/d...'
File was processed with these loaders:
 * ./node_modules/file-loader/dist/cjs.js
You may need an additional loader to handle the result of these loaders.
SyntaxError: Unexpected token m in JSON at position 0 while parsing near 'module.exports = "/d...'
    at JSON.parse (<anonymous>)
    at parseJson (/Users/user/DummpPrj/node_modules/json-parse-better-errors/index.js:7:17)
    at JsonParser.parse (/Users/user/DummpPrj/node_modules/webpack/lib/JsonParser.js:16:16)
    at /Users/user/DummpPrj/node_modules/webpack/lib/NormalModule.js:482:32
    at /Users/user/DummpPrj/node_modules/webpack/lib/NormalModule.js:358:12
    at /Users/user/DummpPrj/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/Users/user/DummpPrj/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/Users/user/DummpPrj/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /Users/user/DummpPrj/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at runSyncOrAsync (/Users/user/DummpPrj/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at iterateNormalLoaders (/Users/user/DummpPrj/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/Users/user/DummpPrj/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/Users/user/DummpPrj/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /Users/user/DummpPrj/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /Users/user/DummpPrj/node_modules/graceful-fs/graceful-fs.js:115:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:61:3)
 @ ./node_modules/babylonjs-editor-es6/build/electron/routes/tools.js 56:25-57
 @ ./node_modules/babylonjs-editor-es6/build/electron/web-server.js
 @ ./node_modules/babylonjs-editor-es6/build/electron/main.js
 @ ./src/planet.ts
julien-moreau commented 4 years ago

Thanks for your try! I absolutely don’t understand why there is the « electron » folder in the package but fixing ASAP! Is your project hosted on GitHub? Can I have the project or at least a mini repro to help me test in your environment? Thanks :)

sprhawk commented 4 years ago

@julien-moreau I guess the package.json should be changed?

now:

 "main": "build/electron/main.js",

I guess:

 "main": "dist/editor.extensions.standalone.js",

I'll put my code onto GitHub.

julien-moreau commented 4 years ago

Ooooooooh ! Nice catch! The main value is used for the electron part and should be replaced when publishing the extensions modules! Fixing that ASAP :)

sprhawk commented 4 years ago

@julien-moreau I put my code here if you need it. in path src/stars.ts

sprhawk commented 4 years ago

@julien-moreau One another small question:

should it be Extensions.RootUrl instead of Extensions.RoolUrl ?

julien-moreau commented 4 years ago

You are right!! Renaming :) Thanks for sharing I’m fixing ASAP and’ll let you know

julien-moreau commented 4 years ago

You can find the preview version here: http://editor.babylonjs.com/electron/preview/BabylonJS%20Editor%20Setup%203.2.1-beta.4.exe

julien-moreau commented 3 years ago

Finally done in V4! :)