{"id":26664,"library":"xcx-lint-qts","title":"xcx-lint-qts","description":"A lint tool for mini-program (小程序) code that automatically injects tracking points (ptpid) into XML templates for WeChat (wx) and Alipay mini-programs. Version 2.2.13 is current, released with moderate cadence. It traverses XML files, generates globally unique point IDs, and optionally generates documentation (Excel, JSON, or online wiki). Key differentiators: tightly integrated with mini-program ecosystem, supports lazy-load image injection, and offers both CLI and JavaScript API for parsing. Compared to general lint tools, it specifically solves business requirement of auto-embedding tracking identifiers into UI components.","status":"active","version":"2.2.13","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install xcx-lint-qts","lang":"bash","label":"npm"},{"cmd":"yarn add xcx-lint-qts","lang":"bash","label":"yarn"},{"cmd":"pnpm add xcx-lint-qts","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Package is CommonJS, not ESM. Default import does not work.","wrong":"import { parseList } from 'xcx-lint-qts'","symbol":"parseList","correct":"const { parseList } = require('xcx-lint-qts')"},{"note":"Same as parseList, require destructuring is canonical.","wrong":"const parseFile = require('xcx-lint-qts').parseFile","symbol":"parseFile","correct":"const { parseFile } = require('xcx-lint-qts')"},{"note":"No default export. Module exports an object with parseList and parseFile.","wrong":"import xcx from 'xcx-lint-qts'","symbol":"main module","correct":"const xcx = require('xcx-lint-qts')"}],"quickstart":{"code":"// CLI usage: in mini-project root, run\n// qts-lint lint wx\n// or programmatically:\nconst { parseList } = require('xcx-lint-qts');\nconst path = require('path');\nconst files = [\n  path.resolve('./pages/index/index.xml'),\n  path.resolve('./pages/login/login.xml')\n];\nparseList(files, {\n  type: 'wx',\n  docs: true,\n  root: process.cwd(),\n  docsRoot: 'root'\n});\nconsole.log('Tracking points injected and docs generated.');","lang":"javascript","description":"Demonstrates both CLI command for linting and programmatic use of parseList with options."},"warnings":[{"fix":"Use const { parseList, parseFile } = require('xcx-lint-qts')","message":"Package is CommonJS only; does not support ESM imports. Use require() not import.","severity":"gotcha","affected_versions":"all"},{"fix":"Always pass absolute paths or provide options.root with the project root directory.","message":"parseList expects absolute file paths; relative paths require options.root to be set, or it prints a warning.","severity":"gotcha","affected_versions":"all"},{"fix":"Ensure --lazy-load is placed before --docs or -c flags.","message":"The CLI does not support combining --lazy-load with doc generation flags in certain versions; check order.","severity":"gotcha","affected_versions":"<2.2.0"},{"fix":"Use `-c json` for JSON output or omit `-c` for default Excel.","message":"Option `online` for --docs is deprecated; prefer using json or omit for Excel.","severity":"deprecated","affected_versions":">=2.2.0"}],"env_vars":null,"search_vec":"'2.2.13':32 'alipay':27 'api':78 'auto':93 'auto-embed':92 'automat':15 'busi':89 'cadenc':38 'cli':75 'code':13 'compar':81 'compon':99 'current':34 'differenti':58 'document':51 'ecosystem':65 'embed':94 'excel':52 'file':42 'general':83 'generat':43,50 'global':44 'id':47 'identifi':96 'imag':70 'inject':16,71 'integr':60 'javascript':77,100 'json':53 'key':57 'lazi':68 'lazy-load':67 'lint':3,6,84 'load':69 'mini':10,29,63 'mini-program':9,28,62 'moder':37 'offer':73 'onlin':55 'option':49 'pars':80 'point':18,46 'program':11,30,64 'ptpid':19 'qts':4 'releas':35 'requir':90 'solv':88 'specif':87 'support':66 'templat':22 'tight':59 'tool':7,85 'track':17,95 'travers':40 'ui':98 'uniqu':45 'version':31 'wechat':24 'wiki':56 'wx':25 'xcx':2 'xcx-lint-qt':1 'xml':21,41 '小程序':12","created_at":"2026-05-01T13:51:09.208374+00:00","updated_at":"2026-05-01T13:51:09.208374+00:00","problems":[{"fix":"Run `npm i -g xcx-lint-qts` for global CLI, or `npm install xcx-lint-qts` for local project.","cause":"Package not installed globally or locally.","error":"Error: Cannot find module 'xcx-lint-qts'"},{"fix":"Use `const { parseList } = require('xcx-lint-qts')` instead of `import { parseList } from 'xcx-lint-qts'`.","cause":"Incorrect import style (ESM import used on CommonJS module).","error":"TypeError: parseList is not a function"},{"fix":"Set `options.root` to the project root directory or convert file paths to absolute using `path.resolve()`.","cause":"Relative file paths provided without setting options.root.","error":"Warning: files paths are not absolute, please pass options.root"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/xcx-lint-qts","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-05-01","next_check":"2026-07-30","install_tag":null}}