npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

kiwi-bundle

v4.6.3-18

Published

A minimalistic React environment for all your cross-platform applications

Downloads

106

Readme

Kiwi Bundle

FOSSA Status

Features

  • out-of-the box configurations for TypeScript, React, React Native, Babel and ESLint
  • integration of react-native-web for building web, Android and iOS apps with the same codebase
  • instant start-up and hot reloading to see your components changes in real time
  • only two NPM packages : one for development and one for distribution

Getting started

Requirements

You will need NodeJS to be installed : https://nodejs.org/en/download/

For Android builds, Java and Android Studio are required

For iOS builds, you need to have Xcode installed on your Mac

Optionally you can install yarn in replacement of npm by running npm install -g yarn

Finally, if you do not have a text editor yet, give VSCode a try : https://code.visualstudio.com

Install

Create a ./package.json file :

{
  "name": "kiwibundle",
  "version": "1.0.0",
  "kiwi": {
    "android": {
      "package": "cc.blueforest.kiwibundle",
      "build": 1
    },
    "ios": {
      "bundle": "cc.blueforest.kiwibundle",
      "build": 1
    }
  },
  "scripts": {
    "start": "kiwi start",
    "build": "kiwi build"
  },
  "dependencies": {
    "kiwi-bundle": "4.6.3-18"
  },
  "devDependencies": {
    "kiwi-bundle-dev": "4.6.3-18"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

Put your own values on "name" and "kiwi.android.package", then run npm install or yarn install

Commands

Web

To start a local server, run npm run start web or yarn start web

To build static files, run npm run build web or yarn build web

Android

To start development environment :

  1. Run npm run start metro or yarn start metro
  2. Run npm run start android or yarn start android

To build production files, run npm run build android or yarn build android

iOS

Before your first start, you will need to run pod install in ./ios to install CocoaPods dependencies

Then run npm run start ios or yarn start ios

Routing for web

import * as Kiwi from "kiwi-bundle"

Kiwi.App({
  key: "kiwibundle",
  routes: { // the router will check the FIRST MATCHING ROUTE
    root: { // this is the default route if no other matches
      path: "/", // http://localhost:3000
    },
    dir: { // all routes MUST start with /
      path: "/dir", // http://localhost:3000/dirè
    },
    dynamic: { // dynamic routes are supported with props
      path: "/dir/{dynamic}", // http://localhost:3000/dir/test (props = { dynamic: "test" })
    },
    subdomain: { // before the first /, you can specify a subdomain
      path: "subdomain/", // http://subdomain.localhost:3000
    },
    testSubdomain: { // you can use as many subdomains as you want
      path: "test.subdomain", // http://test.subdomain.localhost:3000
    },
    dynamicSubdomain: { // dynamic subdomains are supported with props
      path: "{domain}.subdomain/dir", // http://a.subdomain.localhost:3000/dir (props = { domain: "a" })
    },
  },
})