Cover image for I want to develop CLI tool of Riot.js (Looking for collaborators)

I want to develop CLI tool of Riot.js (Looking for collaborators)

kuwahara_jsri profile image 前から2番@riotjsとnodejsとPWA Updated on ・3 min read

This is the third article of Riot.js Advent Calendar 2017
Please note that this time it is not a story about technical programming such as how to write Riot.js (hereinafter referred to as Riot) and tips.

CLI of framework and library other than Riot

I picked up some and tried it. There are differences between the frameworks such as Angular,Ionic, and the CLI of the library such as React,Vue.js and the Riot CLI. I briefly summarized it.

Name version Overview
angular-cli 1.5.5 The so-called framework CLI. dev All necessary items such as server startup, build, and creation of each component are provided.
ionic-cli 3.19.0(※1) Building on each platform and cooperation with Ionic proprietary service are also implemented, while having the same function as angular-cli.
create-react-app 1.4.3 Project template creation only.
vue-cli 2.9.2 Project template creation only.(※2)
riot-cli 3.0.4 Only functions related to file compilation.

I tried looking for the React's CLI, but only the CLI developed by the volunteers was found out except forcreate-react-app(I would appreciate it if you let me know if there is one).

In this way, Riot's CLI has only the minimum functionality, but I thought that I wanted the CLI to have the function to help development, so I decided to develop it myself. Once we name it create-riot-app (temporary).

What I want riot-create-app to do

I briefly write out the functions I assume.

  • Interactive project template creation
    • riot-route
      1. Necessary
      2. No need
    • ES6 compiler selection
      1. Babel
      2. Buble
    • Bundler selection
      1. Webpack
      2. Rollup
    • Testing Framework selection
      1. No need
      2. Ava
      3. Jasmine
      4. Mocha
    • ESLint
      1. Necessary
      2. No need
  • How to make templates
    • compress the source list for each combination and keep it somewhere on the server
      • including node_modules
      • compressed files are prepared for each CLI version
    • files other than node_modules should be included in the CLI source
      1. write each combination of modules to package.json
      2. for node_modules, executing npm install after template creation

If you have any comments such as "I want this kind of function" or "No this is not", please comment or send email me and I will do my best (* I'm also welcome to voice to co-develop, of course.) Thank you.(`・ω・´)ゞ

To the end

I began using Riot and myself started to enter the third year soon. Although it is natural, Riot is not the best tool of the front end neighborhood. Often Riot did not have great features that exist in other frameworks and libraries (eg two way data-binding). However, Riot's philosophy as described on the TOP on Official Page.

 Simple and elegant component-based UI library

is. In other words, it is "a library that designs UIs that are lightweight, minimal, yet with a powerful API." I think that it was in the present shape as a result of pursuing lightness and smallness on that while implementing the minimum necessary functions.

Of course Riot still continues to evolve. Until now Riot has been told that it is slowly, but now the Riot has been improved in speed considerably it got dramatically faster. In addition, I anticipate that the release of long-awaited v4 will come next year. (For v4 I will write another blog again on another day.)

I tried various frameworks, but after all I think that I like Riot and it is easy to develop. Although it is not for large-scale development, I think that Riot is the only library that can make crisply with a low threshold for entry and that can write a conventional composition of Html, CSS, JavaScript as it is.

Thank you. (*・ω・)ノ


※1: ionic-cli is divided into several libraries, and seems to be the same as the version of Ionic Framework as official.
※2: Looking at help, it seems that build has been deleted. By deleting this command we optimized the initial installation and slim down.


Editor guide