Fundamentals 6 min read

IceJS Electron Support, Haunted, Turborepo vs Nx, TypeScript Covariance

Today's roundup introduces IceJS's new Electron scaffold, warns about malicious code in faker.js and colors.js, showcases the upcoming Vue.js documentation, highlights the Haunted web‑components library, compares Turborepo with Nx, presents Microsoft’s lage task runner, and explains TypeScript covariance and contravariance concepts.

Taobao Frontend Technology
Taobao Frontend Technology
Taobao Frontend Technology
IceJS Electron Support, Haunted, Turborepo vs Nx, TypeScript Covariance

IceJS supports creating Electron applications

IceJS introduces a new scaffold for building Electron desktop apps with the latest Electron and Chromium, using icejs x Vite for faster HMR, electron-builder for packaging, and electron-updater for automatic updates.

# Quickly create a project via the scaffold
npm init ice icejs-electron --template @icedesign/scaffold-electron

# Local debugging
cd icejs-electron/
npm start

# Build for production
npm run build

faker.js/colors.js injected with malicious code

Two popular open‑source packages, faker.js and colors.js, were maliciously altered by their author, affecting thousands of downstream applications.

Original article: Download volume and Vue‑like open‑source software sabotaged (qq.com)

Vue.js new documentation

A brand‑new Vue.js documentation site built with VitePress is under development.

Vue.js documentation preview
Vue.js documentation preview

Documentation link: vuejs.org

Haunted

Haunted provides a React‑like Hooks API for Web Components.

<html lang="en">
  <my-counter></my-counter>

  <script type="module">
    import { html } from 'https://unpkg.com/lit-html/lit-html.js';
    import { component, useState } from 'https://unpkg.com/haunted/haunted.js';

    function Counter() {
      const [count, setCount] = useState(0);
      return html`
        <section id="count">${count}</section>
        <button type="button" @click=${() => setCount(count + 1)}>
          Increment
        </button>
      `;
    }

    customElements.define('my-counter', component(Counter));
  </script>
</html>

GitHub repository: matthewp/haunted

Turborepo

Turborepo is a newer monorepo management solution built with Go and backed by Vercel. It is compared with the established Nx Workspace in terms of advantages and disadvantages.

Reference article: Nx and Turborepo | Nx

Home page: turborepo.org

lage

Microsoft’s lage is a task‑runner for JavaScript monorepos that focuses on topologically ordered script execution, offering a pipeline‑based approach distinct from full‑featured monorepo tools.

Home page: lage

Article: Understanding Covariance and Contravariance in TypeScript

Covariance, contravariance, and subtyping are essential topics in typed languages. This article explains how these concepts manifest in TypeScript, the language most front‑end developers use.

Original article: 知其然,知其所以然:TypeScript 中的协变与逆变

frontendElectrondocumentationweb components
Taobao Frontend Technology
Written by

Taobao Frontend Technology

The frontend landscape is constantly evolving, with rapid innovations across familiar languages. Like us, your understanding of the frontend is continually refreshed. Join us on Taobao, a vibrant, all‑encompassing platform, to uncover limitless potential.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.