UNPKG

@needle-tools/engine

Version:

Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.

125 lines (102 loc) 4.38 kB
import { License } from "./license"; export type needleModules = { webpack: object | undefined } /** * Settings for the Needle plugin */ export type userSettings = { /** disable needle asap plugin */ noAsap?: boolean; /** disable vite.alias modification */ noAlias?: boolean; /** * When set to `true` a plugin will log all alias resolutions to a file in the project node_modules directory * @default false */ debugAlias?: boolean; /** disable automatic copying of files to include and output directory (dist) */ noCopy?: boolean; /** When enabled the needle-engine include directory will be copied */ copyIncludesFromEngine?: boolean; /** set to false to tree-shake rapier physics engine to the reduce bundle size */ useRapier?: boolean; /** experimental */ usePostprocessing?: boolean; noDependencyWatcher?: boolean; /** set to false to suppress editor-sync package installation and connection */ dontInstallEditor?: boolean; /** set to false to prevent meta.html modifications (vite only) */ allowMetaPlugin?: boolean; /** set to true to prevent injecting peerjs `parcelRequire` global variable declaration */ noPeer?: boolean; /** set to true to disable reload plugin */ noReload?: boolean; /** Set to false to disable hot reload for the needle plugin. */ allowHotReload?: boolean; /** When enabled the Vite drop plugin will be enabled. @default false */ useDrop?: boolean; noCodegenTransform?: boolean; noFacebookInstantGames?: boolean; /** Custom configuration for facebook instant games. */ facebookInstantGames?: {} /** Set to true to create an imports.log file that shows all module imports. The file is generated when stopping the server. */ debugImportChains?: boolean; /** Set to true to disable generating the buildinfo.json file in your output directory */ noBuildInfo?: boolean; /** Set to true to disable the needle build pipeline (running compression and optimization as a postprocessing step on the exported glTF files) */ noBuildPipeline?: boolean; /** * Use to configure optimized builds */ buildPipeline?: { /** Set to false to prevent the build pipeline from running */ enabled?: boolean, /** Set a project name (cloud only) */ projectName?: string, /** Enable for verbose log output */ verbose?: boolean, /** Set to a specific version of the Needle Build Pipeline. * @default "latest" * @example "2.2.0-alpha" */ version?: string; /** If defined the access token will be used to run compression on Needle Cloud */ accessToken?: string | undefined; } /** required for @serializable https://github.com/vitejs/vite/issues/13736 */ vite44Hack?: boolean; /** set to true to disable poster generation */ noPoster?: boolean; // posterFormat?: "image/webp";// | "image/png"; /** * Use "default" to always generate the poster after 'src' has changed * Use "once" to generate the poster only once, when no poster already exists */ posterGenerationMode?: "default" | "once"; /** Pass in a mix of VitePWA and NeedlePWA options, true to enable with defaults or "false" to disable */ /** @type {import("vite-plugin-pwa").VitePWAOptions & Partial<NeedlePWAOptions> | boolean} */ pwa?: undefined; /** used by nextjs config to forward the webpack module */ modules?: needleModules; /** * Use to activate a needle engine license */ license?: License; /** Enable verbose logging */ debugLicense?: boolean; /** * Experimental: When enabled then fonts from google fonts will be downloaded and copied to the output directory */ makeFilesLocal?: boolean | { enabled: boolean; } /** * When set to `true` a plugin will automatically attempt to open the browser using a network ip address when the local server has started * @default undefined */ openBrowser?: boolean; /** Automatically import MaterialX for needle engine in 'main.ts' */ loadMaterialX?: boolean; disableLogging?: boolean; }