Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize library for size #412

Closed
ealush opened this issue Sep 22, 2020 · 2 comments
Closed

Optimize library for size #412

ealush opened this issue Sep 22, 2020 · 2 comments

Comments

@ealush
Copy link
Owner

ealush commented Sep 22, 2020

Vest is still a relatively small library compared to its feature-set and also compared to other libraries in that space, but I believe its size could be reduced further down if we better structure the project.

This issue is here so we remember to prioritize for size.

@syncush
Copy link
Contributor

syncush commented Sep 24, 2020

I am looking at the package.json, doesn't it contain unnecessary packages that are added to the npm package?

{
  "license": "MIT",
  "dependencies": {
    "@ampproject/rollup-plugin-closure-compiler": "^0.26.0",
    "@babel/cli": "^7.11.6",
    "@babel/core": "^7.11.6",
    "@babel/plugin-proposal-optional-chaining": "^7.11.0",
    "@babel/plugin-proposal-pipeline-operator": "^7.10.5",
    "@babel/plugin-transform-object-assign": "^7.10.4",
    "@babel/plugin-transform-runtime": "^7.11.5",
    "@babel/preset-env": "^7.11.5",
    "@babel/register": "^7.11.5",
    "@lets/wait": "^2.0.2",
    "anyone": "^0.0.7",
    "babel-eslint": "^10.1.0",
    "babel-jest": "^26.3.0",
    "babel-plugin-add-module-exports": "^1.0.4",
    "cross-env": "^7.0.2",
    "date-fns": "^2.16.1",
    "eslint": "^7.8.1",
    "eslint-config-prettier": "^6.11.0",
    "eslint-plugin-import": "^2.22.0",
    "eslint-plugin-jest": "^23.20.0",
    "eslint-plugin-spellcheck": "^0.0.17",
    "faker": "^5.1.0",
    "fs-extra": "^9.0.1",
    "husky": "^4.3.0",
    "jest": "^26.4.2",
    "jest-cli": "^26.4.2",
    "lodash": "^4.17.20",
    "mocha": "^8.1.0",
    "node-fetch": "^2.6.1",
    "onchange": "^7.0.2",
    "prettier": "2.1.2",
    "pretty-quick": "^3.0.2",
    "rollup": "^2.28.1",
    "rollup-plugin-babel": "^4.3.2",
    "rollup-plugin-commonjs": "^10.1.0",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-replace": "^2.2.0",
    "rollup-plugin-terser": "^7.0.2",
    "semver": "^7.3.2",
    "typescript": "^4.0.3",
    "validator": "^13.1.17"
  },
  "scripts": {
    "build": "node ./scripts/buildAll",
    "prettier-watch": "onchange '**/*.js' '**/*.json' -- prettier --write {{changed}}",
    "test": "jest --projects ./packages/*/",
    "lint": "eslint . --ignore-path .gitignore"
  },
  "husky": {
    "hooks": {
      "pre-commit": "pretty-quick --staged"
    }
  },
  "prettier": {
    "arrowParens": "avoid",
    "singleQuote": true
  },
  "devDependencies": {
  }
}

When a user runs npm install vest doesn't it mean he will also install husky and semver for example?

@ealush
Copy link
Owner Author

ealush commented Sep 26, 2020

Hey @syncush. If you look closely at the package.json you copied the content from it has no package name. That's because this is the package.json for the project, but not for the Vest package.

The package.json file you should be looking it is this one: https://github.com/ealush/vest/blob/latest/packages/vest/package.json. Vest is fully self composed, and it does not require any other dependency.

This issue is intended mostly as a future task to shrink down Vest's source code - either by removing unneeded functionality, extracting non-core stuff as their own entries (similar to vest/classNames), or re-writing the code to shrink its size.

@ealush ealush closed this as completed Oct 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants