{"id":41545,"library":"morjs-plugin-compiler-xhs","title":"morjs XHS Compiler Plugin","description":"A compiler plugin for the morjs CLI that adds support for building miniprograms targeting the Xiaohongshu platform. Current version 0.0.27, released as a companion plugin to the morjs multi-platform miniprogram framework. Enables developers to write or convert miniprogram code (e.g., from wx) to the Xiaohongshu (小红书) runtime by integrating with morjs's plugin system. Key differentiator: official morjs plugin set for Xiaohongshu output, built on top of morjs's generic compilation pipeline. Requires @morjs/cli and manual registration via setCompilerPlugins. Ships TypeScript types.","status":"active","version":"0.0.27","language":"javascript","source_language":"en","source_url":"https://github.com/nibilin33/morjs-xhs-compiler","tags":["javascript","morjs","xiaohongshu","miniprogram","typescript"],"install":[{"cmd":"npm install morjs-plugin-compiler-xhs","lang":"bash","label":"npm"},{"cmd":"yarn add morjs-plugin-compiler-xhs","lang":"bash","label":"yarn"},{"cmd":"pnpm add morjs-plugin-compiler-xhs","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core morjs CLI that provides plugin registration and compilation infrastructure.","package":"@morjs/cli","optional":false}],"imports":[{"note":"Default import does not exist; named exports are used.","wrong":"import setCompilerPlugins from '@morjs/cli'","symbol":"setCompilerPlugins","correct":"import { setCompilerPlugins, getAllCompilerPlugins } from '@morjs/cli'"},{"note":"CommonJS require works as alternative, but ESM is preferred and more reliable with TypeScript types.","wrong":"const getAllCompilerPlugins = require('@morjs/cli').getAllCompilerPlugins","symbol":"getAllCompilerPlugins","correct":"import { getAllCompilerPlugins } from '@morjs/cli'"},{"note":"This package exports a namespace (all exported members), not a default export. Use import * as or const PluginXHS = require('morjs-plugin-compiler-xhs').","wrong":"import PluginXHS from 'morjs-plugin-compiler-xhs'","symbol":"PluginXHS","correct":"import * as PluginXHS from 'morjs-plugin-compiler-xhs'"}],"quickstart":{"code":"import { setCompilerPlugins, getAllCompilerPlugins } from '@morjs/cli'\nimport * as PluginXHS from 'morjs-plugin-compiler-xhs'\n\nconst allCompilerTargets: any = getAllCompilerPlugins()\nsetCompilerPlugins([...allCompilerTargets, PluginXHS])\n\n// Then compile a project to Xiaohongshu format via morjs CLI commands","lang":"typescript","description":"Shows how to register the XHS compiler plugin with morjs using ESM imports and the plugin registration API."},"warnings":[{"fix":"Replace `import PluginXHS from 'morjs-plugin-compiler-xhs'` with `import * as PluginXHS from 'morjs-plugin-compiler-xhs'` or use `const PluginXHS = require('morjs-plugin-compiler-xhs')`.","message":"Package does not export a default export; must use import * or require to access the plugin object.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Always call `getAllCompilerPlugins()` and spread its result when calling `setCompilerPlugins`.","message":"Plugin registration requires both setCompilerPlugins and getAllCompilerPlugins to preserve existing targets; omitting getAllCompilerPlugins will overwrite default plugins and break other platforms.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Enable `esModuleInterop` in tsconfig.json or use `import * as` syntax to avoid type errors.","message":"TypeScript types are shipped but may require a tsconfig with `esModuleInterop` or `allowSyntheticDefaultImports` depending on import style.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Pin exact version and test thoroughly after updates.","message":"Version 0.0.x is pre-1.0; API may change without notice. No stability guarantees.","severity":"breaking","affected_versions":">=0.0.0"}],"env_vars":null,"search_vec":"'0.0.27':24 'add':13 'build':16 'built':70 'cli':11 'code':45 'companion':28 'compil':3,6,77 'convert':43 'current':22 'develop':39 'differenti':62 'e.g':46 'enabl':38 'framework':37 'generic':76 'integr':55 'javascript':89 'key':61 'manual':82 'miniprogram':17,36,44,92 'morj':1,10,32,57,64,74,90 'morjs/cli':80 'multi':34 'multi-platform':33 'offici':63 'output':69 'pipelin':78 'platform':21,35 'plugin':4,7,29,59,65 'registr':83 'releas':25 'requir':79 'runtim':53 'set':66 'setcompilerplugin':85 'ship':86 'support':14 'system':60 'target':18 'top':72 'type':88 'typescript':87,93 'version':23 'via':84 'write':41 'wx':48 'xhs':2 'xiaohongshu':20,51,68,91 '小红书':52","created_at":"2026-06-04T18:52:55.744159+00:00","updated_at":"2026-06-04T18:52:55.744159+00:00","problems":[{"fix":"Use `import { createRequire } from 'module'; const require = createRequire(import.meta.url); const pkg = require('morjs-plugin-compiler-xhs/package.json')` or just avoid reading package.json.","cause":"Node.js ESM resolution fails if the package.json does not export './package.json', but this is likely not needed.","error":"ERR_PACKAGE_PATH_NOT_EXPORTED: Package subpath './package.json' is not defined by \"exports\""},{"fix":"Run `npm install morjs-plugin-compiler-xhs` in the project root.","cause":"Package not installed or not in node_modules.","error":"Module not found: Can't resolve 'morjs-plugin-compiler-xhs'"},{"fix":"Use `import { setCompilerPlugins } from '@morjs/cli'` (named import).","cause":"Importing setCompilerPlugins incorrectly as default import.","error":"TypeError: (0 , _cli.setCompilerPlugins) is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/nibilin33/morjs-xhs-compiler#readme","github":"https://github.com/nibilin33/morjs-xhs-compiler","docs":null,"changelog":null,"pypi":null,"npm":"morjs-plugin-compiler-xhs","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}