{"id":14217,"library":"v-money","title":"v-money: Vue 2 Currency Input Mask","description":"v-money is a lightweight, dependency-free Vue.js library that provides currency input masking capabilities, functioning both as a component (`<money>`) and a directive (`v-money`). It enables users to format currency inputs with specified decimal, thousands separators, prefixes, and suffixes, and supports features like copy/paste and mobile compatibility. The current and final stable version is 0.8.1, published over 9 years ago, and the library is no longer actively maintained. For Vue 3 applications, developers should use `v-money3`, which is a direct successor designed to address Vue 3 compatibility and continues active development. v-money was a popular choice for Vue 2 projects needing simple, flexible currency formatting without external dependencies.","status":"abandoned","version":"0.8.1","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","vue","input","mask","directive","currency","money"],"install":[{"cmd":"npm install v-money","lang":"bash","label":"npm"},{"cmd":"yarn add v-money","lang":"bash","label":"yarn"},{"cmd":"pnpm add v-money","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Used when registering the component locally. This package is for Vue 2 only.","wrong":"import Money from 'v-money'","symbol":"Money","correct":"import { Money } from 'v-money'"},{"note":"Used when registering the directive locally. Note the 'V' prefix to denote a directive. This package is for Vue 2 only.","wrong":"import VMoneyDirective from 'v-money'","symbol":"VMoney","correct":"import { VMoney } from 'v-money'"},{"note":"Used for global plugin registration with Vue.use(). This package is for Vue 2 only and does not fully support CommonJS `require` for global use.","wrong":"const money = require('v-money')\nVue.use(money)","symbol":"money","correct":"import money from 'v-money'\nVue.use(money, { precision: 4 })"}],"quickstart":{"code":"<template>\n  <div>\n    <money v-model=\"price\" v-bind=\"moneyConfig\"></money> {{ price }}\n  </div>\n</template>\n\n<script lang=\"ts\">\n  import { Money } from 'v-money';\n  import { defineComponent, ref } from 'vue';\n\n  export default defineComponent({\n    components: { Money },\n    setup() {\n      const price = ref(123456.78);\n      const moneyConfig = {\n        decimal: ',',\n        thousands: '.',\n        prefix: 'R$ ',\n        suffix: ' #',\n        precision: 2,\n        masked: false\n      };\n      return {\n        price,\n        moneyConfig\n      };\n    }\n  });\n</script>","lang":"typescript","description":"Demonstrates how to use the `money` component to create a currency input field with custom formatting, binding it to a reactive `price` value in a Vue 2 (or composition API compatible) setup."},"warnings":[{"fix":"Migrate to `v-money3` (https://github.com/jonathanpmartins/v-money3) which is the spiritual successor built specifically for Vue 3 applications. `v-money3` is actively maintained.","message":"The `v-money` library is designed for Vue 2 and is not compatible with Vue 3. Attempting to use it in a Vue 3 project will result in runtime errors and unexpected behavior. The original maintainers have abandoned this project.","severity":"breaking","affected_versions":">=0.8.1"},{"fix":"Change `v-model=\"price\"` to `v-model.lazy=\"price\"` on the input element where the `v-money` directive is applied.","message":"When using `v-money` as a directive (e.g., on a native `<input>` element), you must use the `v-model.lazy` modifier for proper two-way data binding. Standard `v-model` may lead to inconsistencies or incorrect updates.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"If you require the `masked` property functionality (i.e., having the raw unmasked number in your model), use the `<money>` component instead of the `v-money` directive.","message":"The `masked` property, which controls whether the output value includes the mask characters, does not work when `v-money` is used as a directive. It only functions correctly when `v-money` is used as a component (`<money>`).","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"For new projects or existing projects considering a Vue 3 migration, transition to `v-money3`. For legacy Vue 2 projects, be aware of the lack of ongoing support and consider potential long-term risks.","message":"The `v-money` library is no longer actively maintained and has not seen updates in over 9 years. While functional for Vue 2, it will not receive bug fixes, security patches, or new features.","severity":"deprecated","affected_versions":">=0.8.1"}],"env_vars":null,"search_vec":"'0.8.1':67 '2':5,115 '3':83,100 '9':70 'activ':79,104 'address':98 'ago':72 'applic':84 'capabl':25 'choic':112 'compat':59,101 'compon':30 'continu':103 'copy/paste':56 'currenc':6,22,42,120,130 'current':61 'decim':46 'depend':16,124 'dependency-fre':15 'design':96 'develop':85,105 'direct':33,94,129 'enabl':38 'extern':123 'featur':54 'final':63 'flexibl':119 'format':41,121 'free':17 'function':26 'input':7,23,43,127 'javascript':125 'librari':19,75 'lightweight':14 'like':55 'longer':78 'maintain':80 'mask':8,24,128 'mobil':58 'money':3,11,36,108,131 'money3':90 'need':117 'popular':111 'prefix':49 'project':116 'provid':21 'publish':68 'separ':48 'simpl':118 'specifi':45 'stabl':64 'successor':95 'suffix':51 'support':53 'thousand':47 'use':87 'user':39 'v':2,10,35,89,107 'v-money':1,9,34,106 'v-money3':88 'version':65 'vue':4,82,99,114,126 'vue.js':18 'without':122 'year':71","created_at":"2026-04-20T01:58:33.373665+00:00","updated_at":"2026-04-20T01:58:33.373665+00:00","problems":[],"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/v-money","openapi_spec":null,"status_page":null,"smithery":null,"categories":["web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-18","install_tag":null}}