You may not able to just prevent the "Datasource Location" field alone to be overwritten. Because the pipeline "ProcessRenderings" in .\App_Config\Sitecore\JavaScriptServices\Sitecore.JavaScriptServices.AppServices.config updates this. This is the one which creates renderings and other mandatory process for renderings as well.
<pipelines>
<group groupName="javaScriptServices">
<pipelines>
<import>
...
<processor type="Sitecore.JavaScriptServices.AppServices.Pipelines.Import.ProcessRenderings, Sitecore.JavaScriptServices.AppServices" resolve="true" />
</import>
</pipelines>
</group>
</pipelines>
Overwriting this may not be easy, So you can consider assigning security to the renderings where you don't have additional updates from jss. Select your rendering control which shouldn't be updated by JSS deploy, unprotect item to see additional options under "Security" tab something like "JSS Import - No Overwrite".
This will Deny write access to the item and its descendants for the sitecore\JSS Import Service User role. So ultimately your import process will not overwrite any field values on the item. You can do by deny write access when assigning security.
Refer this Sitecore document for additional details.