运行 project.json 中的脚本就像在 package.json 中一样?
Any way to run the scripts in project.json just like in package.json?
所以正如标题所说,我想知道是否可以用 dotnet cli 做相当于 "npm run " 的事情?例如此片段来自我的 project.json:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.Extensions.Configuration": "1.1.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Configuration.CommandLine": "1.1.0",
"Microsoft.AspNetCore.Mvc":"1.1.0",
"Microsoft.EntityFrameworkCore": "1.1.0",
//"MySql.Data.Core": "7.0.4-ir-191",
//"MySql.Data.EntityFrameworkCore": "7.0.4-ir-191",
"SapientGuardian.EntityFrameworkCore.MySql": "7.1.14",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"moq": "4.6.38-alpha",
"Microsoft.EntityFrameworkCore.Design": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.Relational": "1.1.0"
},
"scripts": {
"migrate-identity": "dotnet ef database update --context 'ApplicationDbContext'"
},
migrate-identity是我自己添加的,这个脚本可以执行吗??
否则我想我的项目中只会有一个脚本文件夹,没什么大不了的,但仍然:)
只需在 project.json
的 scripts
部分添加您想要的脚本
"scripts": {
"prepublish": [ "gulp mifiny-js", "gulp minify-css", "gulp remove-non-minified-files" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
我正在使用 gulp
但这与 npm
相同
Here 是完整的 project.json 架构
如您所见,脚本部分可以接收一堆对应于不同事件的不同属性。
"scripts": {
"type": "object",
"description": "Scripts to execute during the various stages.",
"properties": {
"precompile": { "$ref": "#/definitions/script" },
"postcompile": { "$ref": "#/definitions/script" },
"prepack": { "$ref": "#/definitions/script" },
"postpack": { "$ref": "#/definitions/script" },
"prepublish": { "$ref": "#/definitions/script" },
"postpublish": { "$ref": "#/definitions/script" },
"prerestore": { "$ref": "#/definitions/script" },
"postrestore": { "$ref": "#/definitions/script" },
"prepare": { "$ref": "#/definitions/script" }
}
},
另外我在您的评论中看到您希望手动执行它们。至少 Visual Studio 是可能的(从未尝试过 VS Code)。只需使用 Task Runner Explorer
。您需要构建项目才能看到您的 npm 或 gulp 任务。
我无法使用快捷方式 (Ctrl + Alt + Backspace) 打开它,但 window 也可以通过 View -> Other Windows -> Task Runner Explorer
访问
project.json
文件不再受支持。但是,可以使用基于 XML 的 csproj
文件来处理它。
示例:
<Project Sdk="Microsoft.NET.Sdk.Web">
...
<Target Name="MyTarget" AfterTargets="Build">
<Exec Command="echo 'I believe you will see this message right after a successfull building'" />
</Target>
...
</Project>
结果:
更多详情:
所以正如标题所说,我想知道是否可以用 dotnet cli 做相当于 "npm run " 的事情?例如此片段来自我的 project.json:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.Extensions.Configuration": "1.1.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Configuration.CommandLine": "1.1.0",
"Microsoft.AspNetCore.Mvc":"1.1.0",
"Microsoft.EntityFrameworkCore": "1.1.0",
//"MySql.Data.Core": "7.0.4-ir-191",
//"MySql.Data.EntityFrameworkCore": "7.0.4-ir-191",
"SapientGuardian.EntityFrameworkCore.MySql": "7.1.14",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"moq": "4.6.38-alpha",
"Microsoft.EntityFrameworkCore.Design": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.Relational": "1.1.0"
},
"scripts": {
"migrate-identity": "dotnet ef database update --context 'ApplicationDbContext'"
},
migrate-identity是我自己添加的,这个脚本可以执行吗??
否则我想我的项目中只会有一个脚本文件夹,没什么大不了的,但仍然:)
只需在 project.json
scripts
部分添加您想要的脚本
"scripts": {
"prepublish": [ "gulp mifiny-js", "gulp minify-css", "gulp remove-non-minified-files" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
我正在使用 gulp
但这与 npm
Here 是完整的 project.json 架构
如您所见,脚本部分可以接收一堆对应于不同事件的不同属性。
"scripts": {
"type": "object",
"description": "Scripts to execute during the various stages.",
"properties": {
"precompile": { "$ref": "#/definitions/script" },
"postcompile": { "$ref": "#/definitions/script" },
"prepack": { "$ref": "#/definitions/script" },
"postpack": { "$ref": "#/definitions/script" },
"prepublish": { "$ref": "#/definitions/script" },
"postpublish": { "$ref": "#/definitions/script" },
"prerestore": { "$ref": "#/definitions/script" },
"postrestore": { "$ref": "#/definitions/script" },
"prepare": { "$ref": "#/definitions/script" }
}
},
另外我在您的评论中看到您希望手动执行它们。至少 Visual Studio 是可能的(从未尝试过 VS Code)。只需使用 Task Runner Explorer
。您需要构建项目才能看到您的 npm 或 gulp 任务。
我无法使用快捷方式 (Ctrl + Alt + Backspace) 打开它,但 window 也可以通过 View -> Other Windows -> Task Runner Explorer
project.json
文件不再受支持。但是,可以使用基于 XML 的 csproj
文件来处理它。
示例:
<Project Sdk="Microsoft.NET.Sdk.Web">
...
<Target Name="MyTarget" AfterTargets="Build">
<Exec Command="echo 'I believe you will see this message right after a successfull building'" />
</Target>
...
</Project>
结果:
更多详情: