The neo-app.json file is used only by SAP Web IDE to define paths. Another software, for example Jenkins, ignores that file. Thus, all the paths that are defined in that file are ignored by any other software.
I encountered an issue where a project would accept a different path for importing sap-ui-core.js from SAP Web IDE than it was from Jenkins. The application I was working with was rather old and this is why I had this issue and newer applications do not have this issue.
Resolving the issue is a very short process. All I had to do was add some entries for every file imports that had an issue with its path. For example, in my project in SAP Web IDE, the path to sap-ui-core.js would be:
and in Jenkins it would be:
This is because Jenkins removes the webapp folder, which makes the sap-ui-core.js file one directory closer.
I had this issue on the file opaTests.qunit.html, so let me base this article on this file.
Here is what the opaTests.qunit.html file looked like as imported from Jenkins:
Once I launched the file, it would give me a net::ERR_ABORTED 404 error, mentioning that it could not find the file sap-ui-core.js from this location (as seen from the Chrome Developer Tools):
I added the .com from the URL to show you all the information from the relative path to the sap-ui-core.js file. The first /, of course, is the root folder of the website.
Resolving the Path Issue
The fix for this is very simple. Go to your neo-app.json file, and add a duplicate entry to that of the resources folder, because sap-ui-core.js belongs in the resources folder. The elements to duplicate have been put below. In my case, I had two paths to duplicate because I had two entries with the same path in my neo-app.json file.
Once you have duplicated these entries, you will have to modify the path variable of that entry. The path would be what the error was complaining about:
Thus, the path variable of our duplicate entries would be /webapp/resources. Now, it can be understood that the path variable is the location that you want a folder to be accessible from, and the entryPath is the actual location of that folder in your system.
In the end, this would result in this being added to your neo-app.json file: