Node Stockfish
This is a Node.js wrapper around the Stockfish
chess engine. It can be used to analyse chess positions and get the best
lines of play.
Installation
A quick npm i node-stockfish should do the trick.
This will install the necessary node modules, compile the TypeScript code,
clone the latest Stockfish source code and compile it.
Note that the installation will take a while because of the Stockfish compilation.
On my machine, it takes just under a minute to install.
The final size of the node_modules/node-stockfish directory is just over 100MB on my setup.
Usage
import { StockfishInstance } from 'node-stockfish'
const engine = StockfishInstance.getInstance()
engine.setBoardstateByMoves('e2e4 e7e5 b1c3')
engine.setBoardstateByMoves('rnbqkbnr/pppp1ppp/8/4p3/4P3/2N5/PPPP1PPP/R1BQKBNR b KQkq - 0 1')
engine.startAnalysing({
lines: 5
})
engine.onAnalysisData(analysisData =>
{
console.log(`Analysis for depth ${ analysisData.depth }:`)
for (const line of analysisData.lines)
{
console.log(`\t${ line.score }: ${ line.moves.join(' ') }`)
}
console.log('')
if (analysisData.depth >= 15)
{
engine.terminate()
}
})