From fda0d8603cabdd7e8d5a797482d1e65808777537 Mon Sep 17 00:00:00 2001 From: Jeff Sagal Date: Fri, 18 Feb 2022 15:02:20 -0800 Subject: [PATCH] update build paths BREAKING: only export the Select component --- package.json | 231 ++++++++++++++++++++++++---------------------- postcss.config.js | 2 +- src/index.js | 2 - vite.config.ts | 12 +++ yarn.lock | 57 ++++++------ 5 files changed, 161 insertions(+), 143 deletions(-) diff --git a/package.json b/package.json index aa490d9..761948f 100644 --- a/package.json +++ b/package.json @@ -1,114 +1,125 @@ { - "name": "vue-select", - "version": "4.0.0-beta.3", - "description": "Everything you wish the HTML element could do, wrapped up into a lightweight, extensible Vue component.", + "author": "Jeff Sagal ", + "homepage": "https://vue-select.org", + "directories": { + "doc": "docs", + "test": "tests" }, - "moduleNameMapper": { - "^@/(.*)$": "/src/$1" - }, - "snapshotSerializers": [ - "jest-serializer-vue" - ], - "testMatch": [ - "**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)" - ], - "testURL": "http://localhost/", - "collectCoverage": true, - "collectCoverageFrom": [ - "src/mixins/*.js", - "!src/mixins/index.js", - "src/components/Select.vue", - "!**/node_modules/**" - ], - "coverageReporters": [ - "text" - ] - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "bundlewatch": { "files": [ - { - "path": "./dist/vue-select.js", - "compression": "none", - "maxSize": "23 KB" - }, - { - "path": "./dist/vue-select.css", - "compression": "none", - "maxSize": "8 KB" - } - ] - } + "dist" + ], + "main": "./dist/vue-select.umd.js", + "module": "./dist/vue-select.es.js", + "exports": { + ".": { + "import": "./dist/vue-select.es.js", + "require": "./dist/vue-select.umd.js" + } + }, + "private": false, + "license": "MIT", + "prepare": "npm run build", + "scripts": { + "dev:docs": "cd docs && yarn serve", + "build:docs": "cd docs && yarn build", + "semantic-release": "semantic-release", + "commit": "git-cz", + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview --port 5050", + "test": "vitest --environment jsdom", + "typecheck": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" + }, + "repository": { + "type": "git", + "url": "https://github.com/sagalbot/vue-select.git" + }, + "peerDependencies": { + "vue": "3.x" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.1.0", + "@semantic-release/git": "^9.0.0", + "@semantic-release/github": "^7.0.4", + "@types/jsdom": "^16.2.14", + "@types/node": "^16.11.22", + "@vitejs/plugin-vue": "^2.1.0", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-typescript": "^10.0.0", + "@vue/test-utils": "^2.0.0-rc.18", + "@vue/tsconfig": "^0.1.3", + "autoprefixer": "^10.4.2", + "bundlewatch": "^0.2.5", + "commitizen": "^4.0.3", + "coveralls": "^3.1.1", + "cross-env": "^5.2.0", + "cz-conventional-changelog": "3.1.0", + "eslint": "^8.5.0", + "eslint-plugin-vue": "^8.2.0", + "jsdom": "^19.0.0", + "postcss-nested": "^5.0.6", + "prettier": "^2.5.1", + "semantic-release": "^17.0.4", + "typescript": "~4.5.5", + "vite": "^2.7.13", + "vitest": "^0.2.5", + "vue": "^3.2.20", + "vue-tsc": "^0.31.1" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "jsx", + "json", + "vue" + ], + "transform": { + "^.+\\.vue$": "vue-jest", + ".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": "jest-transform-stub", + "^.+\\.jsx?$": "babel-jest" + }, + "moduleNameMapper": { + "^@/(.*)$": "/src/$1" + }, + "snapshotSerializers": [ + "jest-serializer-vue" + ], + "testMatch": [ + "**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)" + ], + "testURL": "http://localhost/", + "collectCoverage": true, + "collectCoverageFrom": [ + "src/mixins/*.js", + "!src/mixins/index.js", + "src/components/Select.vue", + "!**/node_modules/**" + ], + "coverageReporters": [ + "text" + ] + }, + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } + }, + "bundlewatch": { + "files": [ + { + "path": "./dist/vue-select.js", + "compression": "none", + "maxSize": "23 KB" + }, + { + "path": "./dist/vue-select.css", + "compression": "none", + "maxSize": "8 KB" + } + ] + } } diff --git a/postcss.config.js b/postcss.config.js index 5eb20c7..1f15b1c 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,3 +1,3 @@ module.exports = { - plugins: [require('autoprefixer')], + plugins: [require('autoprefixer'), require('postcss-nested')], } diff --git a/src/index.js b/src/index.js index 8e13aa2..e9f2f8f 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,3 @@ import VueSelect from './components/Select.vue' -import mixins from './mixins/index.js' export default VueSelect -export { VueSelect, mixins } diff --git a/vite.config.ts b/vite.config.ts index dcaeb23..73d2c87 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,3 +1,4 @@ +import { resolve } from 'path' import { fileURLToPath, URL } from 'url' import { defineConfig } from 'vite' @@ -12,4 +13,15 @@ export default defineConfig({ '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, + build: { + lib: { + entry: resolve(__dirname, 'src/index.js'), + name: 'vue-select', + fileName: (format) => `vue-select.${format}.js`, + }, + rollupOptions: { + external: ['vue'], + output: { globals: { vue: 'Vue' } }, + }, + }, }) diff --git a/yarn.lock b/yarn.lock index 92038d5..899848a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1800,6 +1800,11 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + cssom@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" @@ -4434,11 +4439,6 @@ lodash.merge@^4.6.1, lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - lodash.toarray@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" @@ -5682,6 +5682,21 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +postcss-nested@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" + integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== + dependencies: + postcss-selector-parser "^6.0.6" + +postcss-selector-parser@^6.0.6: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" @@ -7098,12 +7113,12 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== dependencies: - punycode "^2.1.0" + punycode "^2.1.1" traverse@~0.6.6: version "0.6.6" @@ -7346,7 +7361,7 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -7550,20 +7565,7 @@ vscode-vue-languageservice@0.31.4: vscode-pug-languageservice "0.31.4" vscode-typescript-languageservice "0.31.4" -vue-eslint-parser@^7.0.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz#ea4e4b10fd10aa35c8a79ac783488d8abcd29be8" - integrity sha512-7tc/ewS9Vq9Bn741pvpg8op2fWJPH3k32aL+jcIcWGCTzh/zXSdh7pZ5FV3W2aJancP9+ftPAv292zY5T5IPCg== - dependencies: - debug "^4.1.1" - eslint-scope "^5.1.1" - eslint-visitor-keys "^1.1.0" - espree "^6.2.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^6.3.0" - -vue-eslint-parser@^8.0.0: +vue-eslint-parser@^8.0.0, vue-eslint-parser@^8.0.1: version "8.2.0" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-8.2.0.tgz#8c3990deb901b0d528d99f4d052a831cd1d0284c" integrity sha512-hvl8OVT8imlKk/lQyhkshqwQQChzHETcBd5abiO4ePw7ib7QUZLfW+2TUrJHKUvFOCFRJrDin5KJO9OHzB5bRQ== @@ -7616,11 +7618,6 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - webidl-conversions@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"