Giter VIP home page Giter VIP logo

zero-scriptsjs's People

Contributors

artembatura avatar dependabot[bot] avatar rdil avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

razzwan

zero-scriptsjs's Issues

Add performance tests

We need to catch the performance regressions and have the availability to search ways for perf improvements

Common improvements

  • Remove extra text from ESLint warnings: Module Warning (from ./node_modules/eslint-loader/dist/cjs.js):
  • Add message Starting the development server... for start task
  • Do not emit source maps for d.ts files in publish build
  • Rename PUBLIC_PATH to PUBLIC_URL

Future Design

Current problem:
Base unit to begin using charms of modularity — Preset

For example:
We have extension.jest-spa, which add test script to any Preset
Key problem is what we doesn't use test script without Preset

In new design we haven't Preset more. New base unit is a Script
Every Script is a script.[toolName]-[appType].[scriptName] package
For example script.webpack-spa.start

Add logic to handle substitutability of extensions

Is your feature request related to a problem? Please describe.
For a example, currently extension.webpack-babel supports React by passing option react: true. In future, to add support other specific loader or plugin for specific technology (ex. Vue — vue-loader) we need add new option (vue: true for add vue-loader). Eventually we have many unused dependencies, if user doesn't use React or Vue, what does not comply with the principles of modularity

Describe the solution you'd like
To solve this problem we need to officially allow inherit extensions and add new logic to handle substitutability of extensions

Important behavior
If in devDependencies will find extensions with same parent before the last parent, we need to choose an extension whose parent-child tree is larger

Then

extension.webpack-babel becomes support only JS/ES
extension.webpack-babel.react, which inherit from extension.webpack-babel comes with support for React

If in project installed extension.webpack-babel and extension.webpack-babel.react, by logic we need to use extension.webpack-babel.react

Describe alternatives you've considered
We can just add presets option for add own presets. But this breaks zero configuration conception, if we doesn't provide separated package with Babel React support

Remove 'sass' dependency in plugin-webpack-sass

Since sass-loader can automatically detect what is the sass implementation is installed, we can allow to user choose the need sass implementation himself (currently it's how implemented in CRA)

Publish 0.5 version

A lot of fixes and features is not delivered yet starting from 0.4 release. All this changes will be in 0.5

Violation of the modular approach

Problem

Since findPlugin method requires Plugin class as argument it's affects that we cannot get some Plugin without having this plugin as dependency. So we cannot use plugin-webpack-react without plugin-webpack-babel and plugin-webpack-eslint. And it's breaks all modular approach.

Solution

Extend core API so that findPlugin method should accept name: string or id: string and it will give ability to get plugin instance without having this plugin in dependencies

Read any options only from `zero-scripts` property in `package.json`

Is your feature request related to a problem? Please describe.
Now we write options for extensions and configs in common package.json

Describe the solution you'd like
Any options of Zero Scripts written in separated object, which keyed by zero-scripts property

Describe alternatives you've considered
None

Switch to modern and efficient package manager

Why not Yarn v1? Yarn v1 is not a stable package manager for monorepo, because we get some Typescript errors on CI of incompatible types from different versions of packages. But local build is works.

Why not Yarn v2? Yarn v2 have strict rules for dynamic imports which based on dependencies. Since our plugin packages is dynamically imported packages by @zero-scripts/core, so we cannot import any of plugins, because core package doesn't have this packages as dependencies.

Separated package compilation is slow

Current Behavior
Currently to build we run parallel compilation on every package, which causes lags at start

Expected behavior
No lag at start and compilation much faster

Your thoughts
At this moment is not very slow. But in future it's maybe totally change. Zero Scripts may have very many separated packages and the compilation will slow down exponentially (theoretically)

Describe alternatives you've considered
We can run compilation at root package as in this example
Then we doesn't need to run build/watch script at every package

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.