A tutorial for when you need to install a local npm package without using a symbolic link

In my previous post, I did my best to explain an intriguing fine point about developing a local npm package.

As you may probably know, I am currently developing redux-chess, a Redux-based chessboard primarily intended to connect to a WebSocket server for chess move validation, position evaluation, and many more cool features.

It is a good idea to test the package from within a host application outside of the package itself. However, it turns out that npm install will create a symlink when installing a local package, which might end up in an unfriendly testing experience.

For further information on…


The setup required isn’t too complicated but funny enough you may end up wasting tons of time without a testing plan in place

When developing a new software package, it is usually a good idea to perform testing tasks from within a host application outside of the package itself.

So, you may want to write a testing app behaving as a host in order to install and play around with a promising, local npm package, which at that time is still going through a development process.

Today let me show you first hand how I’m using a specific testing scheme to develop the redux-chess package introduced in my previous post without messing things up.

Let’s assume a new feature must be added to…


React is so cool in 2021 and it’s getting better over time

The adoption of React Hooks made the development of complex JavaScript apps easier than ever before, so I decided that I’d publish the redux-chess npm package — a Redux-based chessboard — to the public npm registry.

First things first, a disclaimer: This post is not a comprehensive guide to React and Redux but an overview for developers who want to understand how a Redux chessboard may look like as opposed to spaghetti code.

Let me invite you to browse this codebase and just have a look at the architecture of a Redux application for the time being.

As you probably…


A few months ago I was taking my first steps with React and built this failed chessboard while learning Flux, basically was “just a chess board” intended to connect to a PHP Chess server.

At that time, Flux seemed as an option that would help give structure to my frontend code, however Redux ended up emerging as the leading trend in the React ecosystem.

After a few more side-projects I learned some Redux which in my humble opinion might be slightly better than Flux.


Have you ever experienced that feeling of writing nonsense code in a rush?

Well, I have.

That’s why, I suppose, I’m trying to apply SOLID principles to my code as best as I possibly can during my learning journey.

The other day I was able to easily add a couple of FEN notation classes to the php-chess library thanks to an object-oriented architecture being built through a test-driven development (TDD) process.

But I am very sorry that in this article I won’t be going into the details on putting the SOLID principles together to help you ace your next software…


One way to approach the game of chess is in terms of balance or yin-yang equilibrium.

According to Wikipedia yin and yang is a concept of dualism. It describes how seemingly opposite or contrary forces may actually be complementary, interconnected and interdependent, and how they may give rise to each other as they interrelate to one another.

However the yin-yang principle seems not too obvious to me. Have you ever wondered what could actually mean? …


Probably the most important thing about my chess machine learning project is how to take normalized, chess heuristic pictures since all supervised learning methods used for classification and regression are built on that idea.

An intuitive way to look at an heuristic picture is to think of a chess game in terms of snapshots describing what’s going on on the board as reported by the evaluation features that make up such heuristic picture.

In my previous post, What Are Some Healthy Tips to Reduce Cognitive Load?, …


If you ask a chess grandmaster about the reasons why a particular move is considered to be good, they’ll probably give you a bunch supporting the best decision.

There seems to be agreement that it is important to develop your pieces in the opening while trying to control the board’s center at the same time. Castling is an excellent move in an early stage of the game: It helps your king be safer and develop one of your rooks towards the center of the board too.

Then, in the middlegame space becomes an advantage.

And if a complex chess position…


If you’re planning on teaching a computer to play chess, it is often helpful to start off with the building block of the AI, also known as chess board representation. This is a program which is able to keep track of the state of the game as well as to provide the basis for further position evaluation.

There are a number of different programming languages, libraries and software applications which are thought to be good for building computer chess programs.

Python is usually the most loved language among data scientists, but I decided to write my own chess board representation…


These days a lot is being said about how AI will change everything in our lives for the better, but have you ever wondered what exactly goes on in an artificial brain?

I did, and thought that I’d share a step-by-step tutorial on how to build a human-like chess engine. Why is this important to you? Well, think a little about it.

Chess has traditionally been a challenging problem to be addressed. …

Jordi Bassaganas

All things web and more. programarivm.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store