The deal is pending a physical, MLB.com reported.
Napoli, 35, played in 150 games with the American League champion Cleveland Indians last season, setting career highs in homers (34), RBIs (101) and strikeouts (194).
This will be Napoli's third stint with Texas. He played for the Rangers in 2011 and 2012 before leaving for the Boston Red Sox. He rejoined Texas in 2015 and left at the end of the season to sign a one-year, $7 million contract with the Indians.
Last season, he earned an additional $1.5 million in performance bonuses for reaching 550-plus plate appearances.
In 2016, Napoli provided Cleveland's lineup much-needed right-handed power -- he has 238 career home runs. Napoli also brought the Indians versatility, as he played first base and was used as a designated hitter.
Forced to transition from catcher to first base because of a hip injury, Napoli said part of his reason for signing with Cleveland was to reunite with Indians hitting coach Ty Van Burkleo, whom he worked with years ago in the Angels organization. Napoli also wanted to play for Indians manager Terry Francona.