{"_id":"ui-to-vue-converter","_rev":"10-d442ad1eb0e1268953005b5da996c76e","name":"ui-to-vue-converter","dist-tags":{"latest":"1.2.4"},"versions":{"1.0.1":{"name":"ui-to-vue-converter","version":"1.0.1","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.0.1","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"e33a77b3177ac2386efc9af6d64a9d89f152f1ea","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.0.1.tgz","fileCount":20,"integrity":"sha512-1u2+F/YvWQznbGRqgnQgxT7MhoTMMqacU14+M0Hx7ZfonWKNrfgk4P5tTIYjfgJ3JfLNgNkF1NyiU4IBhIzShQ==","signatures":[{"sig":"MEYCIQCw4kifTyn5FbjA7iMx79I/++gmvDh1gxZJm1BATqOQrwIhAIq/lJlLU/UGhsMLX+yZ5mD8HW4pWZVdopXnnG/u6wgn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47791},"main":"src/cli.js","type":"module","gitHead":"4140c46b28f228994b5cacec67fcb6b88c719737","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.0.1_1776217362062_0.026177000140341855","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"ui-to-vue-converter","version":"1.0.2","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.0.2","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"23da8854fa3e27c8106cae6b69dc95e010eca720","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.0.2.tgz","fileCount":20,"integrity":"sha512-0+3fM8HsLrQK7JdtIwiL284Ibw0PyNWDft4xrl3wyWqkYWvPerwQxEF4q+TNj4pGiVisvFhDU9+CEWpESVgsLw==","signatures":[{"sig":"MEYCIQCGdDFA6HAw0EFnmxJAz+mxUrQuq2Hn89WqvbbK6k4v5wIhANn4qH2V4BxnRBnETDNGIzRNGSrNklqps+8M8G+DSey/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47743},"main":"src/cli.js","type":"module","gitHead":"e18cf62c68168d2c9f8505d4f1e571aa047c3c1f","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.0.2_1776217702536_0.1883752097373277","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"ui-to-vue-converter","version":"1.0.3","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.0.3","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"537c123dd9824eb1e53d22ff05e61ca168a46ee5","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.0.3.tgz","fileCount":21,"integrity":"sha512-zltzYh0Qfs0veLc/JhpQkJwIEmw/i2/3L8pX+S4SMRSPU0ScwTE4EfL/ENCdOI7mr6HiZ3oKR6u4T1PcDcRoIw==","signatures":[{"sig":"MEUCIHTw7feB3x1E7nlegVePAIjqCJg5nHSf65TT7ULKLu0UAiEAvOSflWPYFwkTvGngIrvol+6779eSzzKtRTCT8cEjUyk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48461},"main":"src/cli.js","type":"module","gitHead":"6e954932b9698a645b5a2f0df926060a42fc6b7b","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.0.3_1776219352353_0.7976909575019551","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"ui-to-vue-converter","version":"1.0.4","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.0.4","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"a2a604472404724fdeba0784d83c727173072703","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.0.4.tgz","fileCount":23,"integrity":"sha512-GzSnQDxjyg92Ls+CWn3eENMEQ7rxVVHujfBt7m8TnfPjLtLn5Aci+VRttlEoz8k1sj2ESeERawpEv2FCy+vxMA==","signatures":[{"sig":"MEUCIQDJyC/h9ygfFwgpN/+0FgPUT9hwzKpA9UyDtZcUzrAZcQIgEo4QZW3iwsZ+mya3g5N/RYOEYPHVjxnTLo3IegnsEZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58381},"main":"src/cli.js","type":"module","gitHead":"b253e17cf5bdb33f71564037b1b987f9d5ec4a0b","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.0.4_1776222084468_0.7758486932581505","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"ui-to-vue-converter","version":"1.0.5","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.0.5","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"71b27ad63e9b63254b71181b7e22cb4a5cca3f1d","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.0.5.tgz","fileCount":23,"integrity":"sha512-iUUbqFrRt28YL9g/SwejkL8sixdPGqdg2YlD8AmrWm+ISoEwOxEJc94kWnYNGvoyP3ebMzGARPzm/OUMQVhZaw==","signatures":[{"sig":"MEUCIAGJNNLzny7T7ee0T8NVqh2vZXlZaePTfo06YbJitQj+AiEA6L3Sqr+GLM+7qRdyRKI7sRitG1E/2UdBH1G6vr8U74o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58426},"main":"src/cli.js","type":"module","gitHead":"aa674aa39e50e5bc68eb04f7690957e9fc2a6375","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.0.5_1776223325789_0.946616439544741","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"ui-to-vue-converter","version":"1.2.0","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.2.0","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"0fb76bfc7927e6d1f178e7ab5aadd884b15b3407","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.2.0.tgz","fileCount":30,"integrity":"sha512-RtpfywFH87dy/Wn5djLS7UpMy5x6oDWrxjGl+kuomf50TANQOhMSx+1zp3Z3DpPvrxS8L8dBcgPoF/lxT91m7Q==","signatures":[{"sig":"MEUCIEe8lcEW4vPe5n4jV8W1NAbTcaRbAWX2e3Vxd2TA5EDlAiEA62iR2AZXYCXdMGj4RQz/5eI2NXyHr5rjEWLoK2WsgI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111840},"main":"src/cli.js","type":"module","gitHead":"5ee493635afb3ed88f9389579a227014030c8d23","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.2.0_1777125928868_0.28915661672088544","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"ui-to-vue-converter","version":"1.2.1","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.2.1","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"4239dbf8320edd2bc211bea7cab618061aac8222","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.2.1.tgz","fileCount":30,"integrity":"sha512-PLJ1K07h851A8qR6MtkeEuElDQdXrW8c71iuOcsqSEHiNdCJv0wq6JrHId2cechGKuqMkuFLeznWL71OYLIfHw==","signatures":[{"sig":"MEUCICOcYWkuHcMhXoQu0Dqa/4f9Fxk/oK432PyCV76iHKMHAiEA9taykU02rcfI6S0lMVjdRjbeWZZoIeUi+VegxhFd8Nk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114792},"main":"src/cli.js","type":"module","gitHead":"f559d5f5a034f5081982138d1f6b6edbb344e970","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.2.1_1777126957547_0.8368113167053013","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"ui-to-vue-converter","version":"1.2.2","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.2.2","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"2542e6ab662ce0d9dc8cfd210f77f02e022cbfc4","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.2.2.tgz","fileCount":30,"integrity":"sha512-D3KGJ+f+/Ktxivjll0F4oTf6AcEus5GxRGx8afwPE8zEdrcMJ8WPQj7nZKZ/5fjm204zLq2yMAVkFguDtJgQNQ==","signatures":[{"sig":"MEUCIAGMc/3OqwEPJMpioWZ1/uOj2IabLx+sojLGNE3G/7nWAiEAhZOX9sPtJP4vAQLuAfHoquSNJbXRfP2PcgM9j1UWS7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115065},"main":"src/cli.js","type":"module","gitHead":"0d2311dcf0efa52cdb62a89a35fc835aaef9c32e","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.2.2_1777127280389_0.21289066922826594","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"ui-to-vue-converter","version":"1.2.3","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","_id":"ui-to-vue-converter@1.2.3","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"bin":{"ui-to-vue":"src/cli.js"},"dist":{"shasum":"84c7f83714f3502932fd5a693ebf7afff95507e0","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.2.3.tgz","fileCount":30,"integrity":"sha512-VExyhV6r9DZIFA+4XAB+6TtXGW9uSR6BF3Htu/FWA6oWW2d5QBZR/9FCwaBTrEQOPxtljN8Ngef0SR80ho/yzw==","signatures":[{"sig":"MEUCIQCNk/Vn9bF3flNGQ3vVMVevUkNEw/U6DWmlvs0ewTsU4wIgDoVBmlHEYGyY6v/wsOa3nUw9D8b5MZMbzkQQMu30/Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115093},"main":"src/cli.js","type":"module","gitHead":"09f614affaab330c64ba912893683b598bdaeef0","scripts":{"dev":"vite","test":"node test/generate-test.js","build":"vite build","preview":"vite preview","generate":"node src/cli.js"},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"repository":{"url":"git+https://github.com/EricLeeN1/ui2VueConverter.git","type":"git"},"_npmVersion":"10.9.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","directories":{},"_nodeVersion":"22.22.1","dependencies":{"vue":"^3.4.0","glob":"^10.3.0","vant":"^4.8.0","sharp":"^0.33.0","fs-extra":"^11.2.0","prettier":"^3.2.0","commander":"^12.0.0","dashscope":"^1.0.1","vue-router":"^4.3.0","amfe-flexible":"^2.2.1","dashscope-node":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.0","unocss":"^0.58.0","autoprefixer":"^10.4.27","@unocss/reset":"^0.58.0","postcss-pxtorem":"^6.1.0","@vitejs/plugin-vue":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-to-vue-converter_1.2.3_1777128133556_0.6571431534487442","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"ui-to-vue-converter","version":"1.2.4","description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","type":"module","main":"src/cli.js","bin":{"ui-to-vue":"src/cli.js"},"scripts":{"generate":"node src/cli.js","dev":"vite","build":"vite build","preview":"vite preview","test":"node test/generate-test.js"},"dependencies":{"amfe-flexible":"^2.2.1","commander":"^12.0.0","dashscope":"^1.0.1","dashscope-node":"^0.2.2","fs-extra":"^11.2.0","glob":"^10.3.0","prettier":"^3.2.0","sharp":"^0.33.0","vant":"^4.8.0","vue":"^3.4.0","vue-router":"^4.3.0"},"devDependencies":{"@unocss/reset":"^0.58.0","@vitejs/plugin-vue":"^5.0.0","autoprefixer":"^10.4.27","postcss-pxtorem":"^6.1.0","unocss":"^0.58.0","vite":"^5.1.0"},"keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"author":"","license":"MIT","repository":{"type":"git","url":"git+https://github.com/EricLeeN1/ui2VueConverter.git"},"bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","_id":"ui-to-vue-converter@1.2.4","gitHead":"60a2645ecfdaa41bc60a081e0f050c36a34bca18","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-lhrX18Hj5ZvrbP/fcu+/UAM9xQcv9HpwWqpm2+HoVgVhZeuW9xeEtxWtlkGCkkaOaKDPOJSAkI2MtskoOmcknw==","shasum":"cab234c80c384db31b6c6010b03d27a286fcb342","tarball":"https://registry.npmjs.org/ui-to-vue-converter/-/ui-to-vue-converter-1.2.4.tgz","fileCount":30,"unpackedSize":115145,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDh9dIpchm3mT1iHD4l9COVyJvTYS/MM7U7JoB2Z+b/nAiEAxazTD+C1MMee1uK3zn3p6ttsQ+h52bg6T2ZbYYUY2LI="}]},"_npmUser":{"name":"ericleen1","email":"179310009@qq.com"},"directories":{},"maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui-to-vue-converter_1.2.4_1777130426427_0.9559474299413453"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-15T01:42:42.061Z","modified":"2026-04-25T15:20:26.680Z","1.0.1":"2026-04-15T01:42:42.202Z","1.0.2":"2026-04-15T01:48:22.662Z","1.0.3":"2026-04-15T02:15:52.484Z","1.0.4":"2026-04-15T03:01:24.602Z","1.0.5":"2026-04-15T03:22:05.940Z","1.2.0":"2026-04-25T14:05:29.052Z","1.2.1":"2026-04-25T14:22:37.714Z","1.2.2":"2026-04-25T14:28:00.548Z","1.2.3":"2026-04-25T14:42:13.733Z","1.2.4":"2026-04-25T15:20:26.575Z"},"bugs":{"url":"https://github.com/EricLeeN1/ui2VueConverter/issues"},"license":"MIT","homepage":"https://github.com/EricLeeN1/ui2VueConverter#readme","keywords":["ui","vue","code-generation","qwen-vl","vant","element-plus","antd-vue","claude-code","openclaw"],"repository":{"type":"git","url":"git+https://github.com/EricLeeN1/ui2VueConverter.git"},"description":"UI设计图批量转Vue组件工具，支持多UI库，自动抽离公共组件","maintainers":[{"name":"ericleen1","email":"179310009@qq.com"}],"readme":"# UI 设计图转 Vue 组件工具\n\n[English](README_EN.md) | 中文\n\n[![GitHub license](https://img.shields.io/github/license/EricLeeN1/ui2VueConverter)](https://github.com/EricLeeN1/ui2VueConverter/blob/main/LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/EricLeeN1/ui2VueConverter)](https://github.com/EricLeeN1/ui2VueConverter/stargazers)\n[![GitHub issues](https://img.shields.io/github/issues/EricLeeN1/ui2VueConverter)](https://github.com/EricLeeN1/ui2VueConverter/issues)\n[![npm version](https://img.shields.io/npm/v/ui-to-vue-converter)](https://www.npmjs.com/package/ui-to-vue-converter)\n\n一键将UI设计图（蓝湖、Figma等截图）批量转换为Vue 3组件，支持多UI库，自动抽离公共组件，可作为Claude Code/OpenClaw/Trace技能使用。\n\n## 功能特性\n\n- ✅ 批量扫描设计图目录，自动识别页面和页面的不同状态\n- ✅ **智能目录结构识别** — 自动探测模块/页面层级\n- ✅ 支持选择UI库：移动端Vant、PC端Element Plus、Ant Design Vue\n- ✅ 自动识别并抽离公共组件，减少重复代码\n- ✅ **支持设计切图/素材，生成更精准的UI还原**\n- ✅ 生成符合规范的Vue 3 Composition API代码\n- ✅ **支持 Preset 预设配置，可按项目自定义输出规范**\n- ✅ **多 API Provider 支持** — Anthropic、DashScope、OpenAI 等\n- ✅ **路由自动注入** — 自动追加到项目路由文件\n- ✅ CSS 语法错误自动修复\n- ✅ 设计稿尺寸自动识别（@1x/@2x/@3x）\n- ✅ 冗余导入自动清理\n- ✅ 生成代码自动格式化\n\n## 快速开始\n\n### 方式一：从GitHub克隆\n```bash\n# 克隆项目\ngit clone https://github.com/EricLeeN1/ui2VueConverter.git\ncd ui2VueConverter\n\n# 安装依赖\nnpm install\n\n# 配置API密钥\nexport DASHSCOPE_API_KEY=your_api_key\n\n# 生成代码\nnode src/cli.js --input ./screenshots --ui vant --output ./src\n```\n\n### 方式二：全局安装\n```bash\nnpm install -g ui-to-vue-converter\n\n# 配置API密钥\nexport DASHSCOPE_API_KEY=your_api_key\n\n# 生成代码\nui-to-vue --input ./screenshots --ui vant --output ./src\n```\n\n## 参数说明\n\n- `--input`: 设计图目录路径，默认`./screenshots`\n- `--ui`: UI库选择，支持`vant`/`element-plus`/`antd-vue`，默认`vant`\n- `--output`: 输出目录，默认`./src`\n- `--config`: 配置文件路径，默认`./.ui-to-vue.config.json`\n- `--preset`: 配置预设，默认`default`\n- `--inject-router`: 自动注入路由到项目路由文件，如 `src/router/index.ts`\n\n## Preset 预设配置\n\n工具支持通过 `.ui-to-vue.config.json` 配置文件自定义项目规范，无需修改工具源码。\n\n### 配置文件示例\n\n```json\n{\n  \"preset\": \"default\",\n  \"useTypeScript\": true,\n  \"styleLang\": \"scss\",\n  \"useUnoCSS\": false,\n  \"designWidth\": 375,\n  \"projectStandardWidth\": 750,\n  \"rootValue\": 75,\n  \"layoutComponent\": \"BasePages\",\n  \"componentImportMode\": \"auto\",\n  \"fileNaming\": \"kebab\",\n  \"outputStructure\": \"flat\",\n  \"provider\": \"anthropic\",\n  \"url\": \"https://coding.dashscope.aliyuncs.com/apps/anthropic/v1/messages\",\n  \"apiKey\": \"your_api_key\",\n  \"model\": \"qwen3.6-plus\",\n  \"toast\": \"custom\",\n  \"customToastCall\": \"toast.show(\\\"{message}\\\")\",\n  \"confirm\": \"custom\",\n  \"customConfirmCall\": \"dialog.confirm(\\\"{title}\\\", \\\"{message}\\\")\",\n  \"customImports\": [\n    \"import toast from '@/utils/toast'\",\n    \"import dialog from '@/utils/dialog'\"\n  ],\n  \"customPromptRules\": [\n    \"项目使用 TypeScript，`<script setup lang=\\\"ts\\\">`\",\n    \"样式使用 SCSS（`<style scoped lang=\\\"scss\\\">`），不使用 UnoCSS 原子类\",\n    \"所有尺寸使用 px 单位，设计稿基准 750px\",\n    \"布局统一使用 BasePages 组件包裹\"\n  ],\n  \"nameMap\": {\n    \"示例页面\": \"example-page\",\n    \"待处理\": \"pending\"\n  }\n}\n```\n\n### 配置项说明\n\n| 配置项 | 类型 | 说明 |\n|--------|------|------|\n| `useTypeScript` | boolean | 是否生成 TypeScript 代码 |\n| `styleLang` | string | 样式语言：`css`/`scss`/`less` |\n| `useUnoCSS` | boolean | 是否使用 UnoCSS 原子类 |\n| `designWidth` | number | 设计稿基准宽度（如 375/750） |\n| `projectStandardWidth` | number | 项目设计标准宽度（如 750px），用于尺寸转换 |\n| `rootValue` | number | postcss-pxtorem 的 rootValue |\n| `layoutComponent` | string | 布局组件名，如 `BasePages` |\n| `fileNaming` | string | 文件名风格：`pascal` 或 `kebab` |\n| `outputStructure` | string | 输出结构：`nested` 或 `flat` |\n| `provider` | string | API Provider：`anthropic`/`dashscope`/`openai` |\n| `url` | string | 自定义 API 地址 |\n| `apiKey` | string | API 密钥 |\n| `model` | string | 模型名称 |\n| `toast` | string | toast 类型：`van`/`el`/`antd`/`custom`/`none` |\n| `confirm` | string | confirm 类型：`van`/`el`/`antd`/`custom`/`none` |\n| `customImports` | string[] | 额外导入的模块 |\n| `customPromptRules` | string[] | 自定义 AI Prompt 规则 |\n| `nameMap` | object | 中文目录名映射为英文 |\n\n### nameMap 名称映射\n\n当设计图目录使用中文命名时，可通过 `nameMap` 自动映射为英文文件名：\n\n```json\n{\n  \"nameMap\": {\n    \"示例页面\": \"example-page\",\n    \"待处理\": \"pending\",\n    \"已处理\": \"processed\"\n  }\n}\n```\n\n## 路径模式说明\n所有路径参数**同时支持相对路径和绝对路径**：\n- **相对路径**：相对于执行命令时的当前工作目录（CWD）\n- **绝对路径**：直接使用传入的完整路径，不做转换\n\n### 示例\n```bash\n# 相对路径（推荐，在项目根目录执行）\nui-to-vue --input ./designs --output ./src\n\n# 绝对路径\nui-to-vue --input /Users/your-username/common-designs --output /Users/your-username/project/src\n```\n\n## 🖼️ 设计切图/素材支持\n\n为了提高生成代码的UI还原度，本工具支持识别设计切图（图标、按钮、标签等独立元素），并将切图素材传给AI模型分析，使生成的代码更精准地还原图标样式、颜色和尺寸。\n\n### 为什么需要切图？\n\n| 有切图 | 无切图 |\n|--------|--------|\n| 图标/按钮样式准确 | 可能使用默认组件图标 |\n| 颜色值更精确 | 颜色可能不够准确 |\n| 间距/尺寸更准确 | 尺寸可能偏差 |\n| 自定义元素还原度高 | 自定义元素可能被误解 |\n\n### 切图目录结构\n\n工具支持**三级切图目录**，优先级从高到低：\n\n| 层级 | 目录结构 | 适用场景 |\n|------|---------|---------|\n| 页面级 | `模块/页面类型/切图/` | 仅某个页面使用的切图 |\n| 模块级 | `模块/切图/` | 该模块所有页面共用的切图 |\n| 全局级 | `切图/` | 所有模块共用的切图 |\n\n```\nscreenshots/\n├── 首页/                          # 业务模块\n│   ├── 列表/                      # 页面类型（二级目录）\n│   │   ├── 首页-列表-默认@3x.png  # 页面截图\n│   │   ├── 首页-列表-加载@3x.png\n│   │   └── 切图/                  # 页面级切图 ⭐⭐⭐\n│   │       ├── btn-refresh.png    # 列表页专属刷新按钮\n│   │       ├── icon-status.png    # 列表状态图标\n│   │       └── ...\n│   │\n│   ├── 详情/                      # 另一个页面类型\n│   │   ├── 首页-详情@3x.png\n│   │   ├── 切图/                  # 详情页专属切图\n│   │   │   ├── btn-action.png     # 详情页操作按钮\n│   │   │   └── ...\n│   │\n│   ├── 切图/                      # 模块级切图 ⭐⭐\n│   │   ├── icon-back.png          # 返回箭头（模块通用）\n│   │   ├── icon-search.png        # 搜索图标（模块通用）\n│   │   └── ...\n│   │\n│   ├── 首页-默认@3x.png           # 一级目录结构（兼容）\n│   ├── 首页-详情@3x.png\n│   ├── 首页-加载@3x.png\n│\n├── 订单管理/\n│   ├── 列表/\n│   │   ├── 订单管理-列表@3x.png\n│   │   └── 切图/\n│   │       └── ...\n│   ├── 切图/\n│   │   └── ...\n│\n├── 切图/                          # 全局切图 ⭐\n│   ├── logo.png                   # Logo（所有模块共用）\n│   ├── icon-home.png              # 首页图标\n│   ├── icon-user.png              # 用户图标\n│   ├── avatar-default.png         # 默认头像\n│   └── ...\n│\n└── index.html                     # 预览页面（可选）\n```\n\n**切图查找优先级**：页面级 > 模块级 > 全局级\n\n同名切图在不同层级存在时，优先使用页面级的切图，确保每个页面能使用最合适的素材。\n\n### 切图命名建议\n\n为了更好地识别切图类型，建议使用以下命名规范：\n\n| 前缀 | 类型 | 示例 |\n|------|------|------|\n| `icon-` | 图标 | `icon-back.png`, `icon-search.png` |\n| `btn-` / `button-` | 按钮 | `btn-primary.png`, `btn-submit.png` |\n| `logo` | Logo | `logo.png`, `logo-dark.png` |\n| `tab-` | 标签页 | `tab-active.png`, `tab-inactive.png` |\n| `badge-` | 徽章 | `badge-new.png`, `badge-count.png` |\n| `tag-` | 标记 | `tag-urgent.png`, `tag-status.png` |\n| `arrow-` | 箭头 | `arrow-left.png`, `arrow-right.png` |\n| `bg-` | 背景 | `bg-header.png`, `bg-card.png` |\n| `avatar-` | 头像 | `avatar-default.png`, `avatar-small.png` |\n\n### 支持的切图目录名称\n\n工具会自动识别以下目录作为切图目录：\n- `切图` (中文)\n- `assets`\n- `icons`\n- `sprites`\n- `cut`\n- `images`\n\n### 切图格式支持\n\n- PNG（推荐）\n- JPG/JPEG\n- SVG\n\n### 使用切图的生成效果\n\n```bash\n# 运行生成命令，工具会自动识别切图目录\nnode src/cli.js --input ./screenshots --ui vant --output ./src\n\n# 输出示例：\n# ✅ 识别到 5 个页面组\n# ✅ 识别到 12 个设计切图/素材  ← 切图已被识别\n# ✅ 加载Vant UI库配置\n# 正在生成页面: 首页\n```\n\n## API 配置\n\n支持多种 LLM Provider：Anthropic Messages API（DashScope Coding Plan 等）、OpenAI Chat Completions API。\n\n优先级：`--config` > `.ui-to-vue.config.json` > 环境变量\n\n```json\n// .ui-to-vue.config.json — DashScope (默认)\n{\n  \"provider\": \"anthropic\",\n  \"url\": \"https://coding.dashscope.aliyuncs.com/apps/anthropic/v1/messages\",\n  \"apiKey\": \"your_api_key\",\n  \"model\": \"qwen3.6-plus\"\n}\n\n// .ui-to-vue.config.json — OpenAI\n{\n  \"provider\": \"openai\",\n  \"url\": \"https://api.openai.com/v1/chat/completions\",\n  \"apiKey\": \"your_openai_key\",\n  \"model\": \"gpt-4o\"\n}\n```\n\n**⚠️ 安全警告**：请将 `.ui-to-vue.config.json` 添加到 `.gitignore`，防止 API 密钥意外泄露到版本控制中。\n\n```gitignore\n# .gitignore\n.ui-to-vue.config.json\n```\n\n## 📄 License\n\nMIT License - 详见 [LICENSE](LICENSE) 文件\n\n## 🤝 贡献\n\n欢迎提交Issue和Pull Request！详见 [CONTRIBUTING.md](CONTRIBUTING.md) 贡献指南\n\n## ⭐ 支持\n\n如果这个项目对你有帮助，欢迎点个Star支持一下！\n\n---\n\n**本项目与阿里巴巴/通义千问无官方关联，仅使用其公开API服务。**","readmeFilename":"README.md"}