JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdn.rawgit.com/mrdoob/three.js/master/build/three.js"></script>

CSS

body {
	  margin: 0;
}

JavaScript

var camera, scene, renderer;

var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();
var plane = new THREE.Plane( new THREE.Vector3( 0, 0, 1 ), 0 );

init();
animate();

function init() {

		var frustumSize = 1;
    var aspect = window.innerWidth / window.innerHeight;
		
		camera = new THREE.OrthographicCamera( frustumSize * aspect / - 2, frustumSize * aspect / 2, frustumSize / 2, frustumSize / - 2, 1, 1000 );
    camera.position.z = 1;

    scene = new THREE.Scene();
		
		scene.add( new THREE.AxesHelper() );

    renderer = new THREE.WebGLRenderer( { antialias: true } );
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.body.appendChild( renderer.domElement );

		window.addEventListener( 'click', onPointerMove, false );

}

function onPointerMove( event ){

	mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
	mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
	
	raycaster.setFromCamera( mouse, camera );
	
	var intersects = new THREE.Vector3();
	raycaster.ray.intersectPlane( plane, intersects );

	console.log( raycaster.ray ); 
	console.log( intersects );
	
}

function animate() {

    requestAnimationFrame( animate );
    renderer.render( scene, camera );

}