We have just released a new version of the Node scaffolding that supports scripts defined in package.json!
It is common for Node applications to include scripts in their package.json files like so:
package.json
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
The Habitat Node Scaffolding now supports these scripts out of the box.
Let’s take it for a test run:
One of my favorite sample React apps is the Pokedex by Ali Gasymov.
Let’s Habitize this application and deploy it in a Docker container!
First, clone the Github repo:
$ git clone git@github.com:alik0211/pokedex.git $ cd pokedex
Now install the dependencies:
pokedex
$ npm install
Check out the package.json – notice the scripts section? We will be able to run these to start, build, etc. the application through the Node Scaffolding.
package.json
{
"name": "pokedex",
"version": "1.1.5",
"private": true,
"dependencies": {
"react": "^16.0.0",
"react-dom": "^16.0.0",
"react-redux": "^5.0.6",
"redux": "^3.7.2",
"redux-thunk": "^2.2.0"
},
"devDependencies": {
"react-scripts": "1.0.10",
"redux-logger": "^3.0.6"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
Let’s Habitize this app:
$ hab plan init -s node $ hab studio enter [1][default:/src:0]# build
Currently, this only builds your application as a HART package – scripts within the package.json file will run when installing this package to wherever you want to run it.
Once the build completes, export your new HART package as a Docker image:
[1][default:/src:0]# $ hab pkg export docker ./results/your_new_hart_file.hart [1][default:/src:0]# $ exit
Now, start up a new container with your container image
$ docker run -it -p 8000:8000 your_origin/pokedex
Then navigate to localhost:8000 in your browser and you should see a running pokedex!