LibraryManager icon indicating copy to clipboard operation
LibraryManager copied to clipboard

LIB004 The manifest file contains syntax errors

Open cof-tdawson opened this issue 7 years ago • 23 comments

Functional impact

LibMan with VS 15.8.0 Preview 2.0 has stopped working for me, parsing issue with filesystem providers' "files" array.

Minimal repro steps

  1. Create New VS ASP.Net Web Application, SPA starter.
  2. Enable Client-side Library Management
  3. Add something. eg:

{ "version": "1.0", "defaultProvider": "filesystem", "libraries": [ { "library": "node_modules/jquery/dist/", "destination": "Scripts/lib/jquery", "files": [ "jquery.min.js", "jquery.min.map" ] } ] }

Saving this results in:

LIB004 The manifest file contains syntax errors in the Error List pad

Expected result

This used to work last week ??

Actual result

LIB004 The manifest file contains syntax errors in the Error List pad

Further technical details

??

cof-tdawson avatar Jun 08 '18 20:06 cof-tdawson

removing the files property and array avoids the error

cof-tdawson avatar Jun 08 '18 20:06 cof-tdawson

@justcla, please investigate why we're reporting a syntax error in seemingly valid JSON.

jodavis avatar Jun 21 '18 20:06 jodavis

I tested this on the latest build from master.

I put the same json into a libman.json file in a new ASP.NET (Framework) MVC app that had a "node_modules/jquery/dist" dir with the two jquery files listed and it ran perfectly.

`

{
  "version": "1.0",
  "defaultProvider": "filesystem",
  "libraries": [
    {
      "library": "node_modules/jquery/dist/",
      "destination": "Scripts/lib/jquery",
      "files": [ "jquery.min.js", "jquery.min.map" ]
    }
  ]
}

`

image

justcla avatar Jun 29 '18 22:06 justcla

Unable to reproduce with the latest code. Please update to the latest version of Library Manager.

justcla avatar Jun 29 '18 22:06 justcla

Same issue for me as well, removing the files block also stopped the error. If on a new ASP.NET Core 2.1 project in VS, using Add Client-Side Library creates a libman.json file that will not pass syntax checking, to test add "twitter-bootstrap" package. Reproduced error on two machines.

iamadamreed avatar Jul 04 '18 18:07 iamadamreed

Still broken on 15.8.0 Preview 4.0 that came out today:

image

cof-tdawson avatar Jul 10 '18 19:07 cof-tdawson

Still broken on Version 15.8.0 Preview 5.0

cof-tdawson avatar Jul 31 '18 22:07 cof-tdawson

Still broken on Version 15.9.0 Preview 1.0

image

cof-tdawson avatar Aug 21 '18 16:08 cof-tdawson

I'm having this same issue in Visual Studio 15.8.5 in an ASP.NET Core 2.1 application. If I remove the Files property, the error goes away and the restore works.

Has anyone found a solution for this?

jmcmillen avatar Sep 28 '18 19:09 jmcmillen

Still broken with 15.9.0 Preview 3.0 when using the new GUI to create the libman.json file

image

cof-tdawson avatar Oct 18 '18 20:10 cof-tdawson

I haven't been able to repro this on my box (15.9). I've tried using the libman.json contents that @sysdev-cof posted in the original issue with a Web Application project, and also similar to the latest post in a .NET Core 2.1 app. Can you guys think of anything that I might be missing from the repro?

jimmylewis avatar Oct 18 '18 21:10 jimmylewis

Thanks for looking at this again...

Repro steps for me just now:

Visual Studio 15.9 Preview 3 New Asp.net Core MVC web app Add >> new npm configuration file add jquery 3.3.1 to devDependencies in package.json & save project file >> Manage Client-Side Libraries... wwwroot > Add Client-Side Library:

image

Click Install

Result:

image

cof-tdawson avatar Oct 18 '18 21:10 cof-tdawson

Yes, thanks for looking at this again.

I just tried with a new install of Windows 10 and Visual Studio 15.8.7. I chose an empty ASP.NET Core 2.1 project and tried to add a specific jquery file from cdnjs. Here's my libman.json file.

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "library": "[email protected]",
      "destination": "wwwroot/jquery/",
      "files": [
        "jquery.js"
      ]
    }
  ]
}

Restore operation started... Restoring libraries for project NetCoreLibManTest Library Manager manifest contains syntax errors. Please fix the errors in libman.json, then try again. Restore operation completed with errors Time Elapsed: 00:00:00.0007591

jmcmillen avatar Oct 18 '18 21:10 jmcmillen

This is fixed for me in today's 15.9.0 Preview 4.0

cof-tdawson avatar Oct 26 '18 20:10 cof-tdawson

This still happens for me with NuGet package Microsoft.Web.LibraryManager.Build version 1.0.163 in Visual Studio Professional 2017 version 15.9.3.

Removing the files properties and arrays of all libraries works, but I don't think this is how it's supposed to work.

RawsomeGH avatar Dec 10 '18 14:12 RawsomeGH

I'm just getting back to trying this again and it's fixed for me in Version 15.9.4.

jmcmillen avatar Dec 19 '18 21:12 jmcmillen

I spoke too soon. It seems that library restore is only partially working now.

If I specify the jquery files that I want like this.

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "library": "[email protected]",
      "destination": "wwwroot/jquery/",
      "files": [
        "jquery.js",
        "jquery.min.js",
        "jquery.min.map"
      ]
    }
  ]
}

Then when I right-click on libman.json and choose Restore Client-Side Libraries, the restore works. But I have enabled Restore Client-Side Libraries on Build and when I build, I'm still seeing the error below.

LIB004 Library Manager manifest contains syntax errors. Please fix the errors in libman.json, then try again.

jmcmillen avatar Dec 19 '18 21:12 jmcmillen

when you enable "Restore Client-Side Libraries on Build" This error can be seen. It's in latest VS Release too 15.9.4.

Should be something to do with Microsoft.Web.LibraryManager.Build Nuget When files are mention the build nuget show's that error.

cwishva avatar Dec 21 '18 06:12 cwishva

@justcla are we investigating this ?

Since i'm unable to restore with "Build" package i am suppose to tell every dev to restore manually. Restore fails most of the time with "CDNJS" when some files return 404 , there so we need to mention the required files in order for this to work. Can i say to restore other files if there are 404 ?

eg : https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.js.map (404)

CLI tool works with "Files" i can integrate that to CICD. If the "Build" package works i don't have to ask to restore manually or use CLI tool.

cwishva avatar Dec 26 '18 05:12 cwishva

I'm still unable to reproduce this at all on either VS15.9.6 and VS16 previews. I've tried using the build package to restore as well as saving the file in VS. Both work just fine for me.

If someone can still repro this, can you specify which version of the Microsoft.Web.LibraryManager.Build package you're using? Or ideally share a project that can reproduce the problem?

jimmylewis avatar Feb 02 '19 02:02 jimmylewis

I am not seeing this issue with VS 2019 Version 16.0.0 Preview 2.1 and the following simple project:

image

cofdev25 avatar Feb 04 '19 15:02 cofdev25

I am still facing this issue with VS 15.9.10 in eShopOnContainers project

rafsanulhasan avatar Apr 02 '19 12:04 rafsanulhasan

removing the files property and array avoids the error

This resolved the error for me in VS2022 Version 17.3.5 and Microsoft.Web.LibraryManager.Build 2.1.175

If I add a new library via the UI and select the files option the error occurs from the json it creates.

mark-heptinstall avatar Oct 20 '22 11:10 mark-heptinstall