问题
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