'prebuild' scripts in project.json doesn't run

戏子无情 提交于 2019-12-05 13:11:47

问题


I have a .NET 5 web application using the DNX framework, and I want to run 'npm install', 'bower install' and others, whenever I build the project.

Right now I'm able to do so on publish, using 'prepublish', but it doesn't seem to work with 'prebuild', although I saw it is possible here

What I have now:

"scripts": {
    "prepublish": [ "npm install", "bower install", "tsd install", "gulp min" ]
}

回答1:


As of RC1, you have to "produce outputs" to pipe the build through dnu:




回答2:


I know this question is a bit older, but google lead me to it. As of 06/19/2016, you should use precompile instead of prebuild. The new documentation for the project.json file is available at https://docs.microsoft.com/pt-br/dotnet/articles/core/tools/project-json#scripts.

The valid script options for the project.json file are:

  • precompile
  • postcompile
  • prepublish
  • postpublish

And Microsoft has already released an announcement stating they will be reverting back to the old .csproj format. You can read about it on the MSDN blog.

The first wave of this change will happen in the Visual Studio “15” RTM: when opening any .NET Core project in Visual Studio, it will automatically convert from .xproj to .csproj, moving the assets from the project.json file into configuration files and the .csproj file. We will also provide a tool for converting applications using the .NET command line tools as well.




回答3:


I haven't looked for beta5 but DNX have some documentation about the supported scripts right here.

Basically this:

{
  "scripts": {
    "prebuild": "echo before building",
    "postbuild": "echo after building",
    "prepack": "echo before packing",
    "postpack": "echo after packing",
    "prerestore": "echo before restoring packages",
    "postrestore": "echo after restoring packages"
  }
}



回答4:


@Stajs's answer is correct but another step may be needed when working with TypeScript, which seems to be the case here.

By default, Visual Studio compiles the TypeScript sources before it pipes the build through dnu. So if there are new tsd type definitions or other references that will only work if tsd install is run first, the build will fail. It's a catch 22.

To prevent Visual Studio from running the TypeScript transpilation, you also have to uncheck the Compile TypeScript on build checkbox on the Properties > Build page.

Note that this only makes sense if you add TypeScript compilation yourself to your gulp or grunt file.



来源:https://stackoverflow.com/questions/32220663/prebuild-scripts-in-project-json-doesnt-run

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!