The 19-year-old striker, yet to make his first-team debut for the club, spent time on loan at Gainsborough Trinity and Stockport last season.
"I'm thrilled to sign on again," the Barnsley academy product told the club's official website.
"I can't wait to get going again over the summer and try my best to get some game time with the first team.
"I've had two good loan spells at Gainsborough and Stockport where I learned a lot and scored a few goals. Now I want to score goals for Barnsley."