从npm脚本命令访问project.json webroot值?

从npm脚本命令访问project.json webroot值?,npm,asp.net-core,build-tools,Npm,Asp.net Core,Build Tools,我试图使用NPM作为我的ASP.NET 5(Vnext)构建工具,以及用于构建我的js/cs文件,但我不想在我的NPM和ASP.NET 5配置文件中重复配置值 在我的项目中,我有以下文件 package.json "scripts": { "build:js": "browserify assets/scripts/main.js > $npm_package_config_aspnet5_webroot/main.js" } { "version": "1.0.0-*",

我试图使用NPM作为我的ASP.NET 5(Vnext)构建工具,以及用于构建我的js/cs文件,但我不想在我的NPM和ASP.NET 5配置文件中重复配置值

在我的项目中,我有以下文件

package.json

"scripts": {
  "build:js": "browserify assets/scripts/main.js > $npm_package_config_aspnet5_webroot/main.js"
}
{
    "version": "1.0.0-*",
    "webroot": "wwwroot",
}
project.json

"scripts": {
  "build:js": "browserify assets/scripts/main.js > $npm_package_config_aspnet5_webroot/main.js"
}
{
    "version": "1.0.0-*",
    "webroot": "wwwroot",
}
我希望能够从ASP.NET 5 json文件中提取webroot值,并将其用于npm脚本命令,如下面的命令。这是一个非常酷的CLI工具,我一直在使用它来处理类似的事情。您可以使用它来提取json文件的各个值。将其与bash脚本相结合意味着您可以非常轻松地从project.json中提取asp.net webroot

假设您的project.json如下所示:

{
    "webroot": "www/"
}
您可以使用json工具,如下所示:

$ json -f project.json webroot
www/
现在,这只是将其与build:js命令相结合的一个例子:

"scripts": {
    "build:js": "browserify assets/scripts/main.js > $(json -f project.json webroot)/main.js"
}
您还可以通过提取值来执行npm任务,如果您需要多次使用该任务,这将非常有用:

"scripts": {
    "getwebroot": "json -f project.json webroot",
    "build:js": "browserify assets/scripts/main.js > $(npm run getwebroot -s)/main.js",
    "build:css": "cat assets/styles/* > $(npm run getwebroot -s)/style.css"
}

是否可以将整个json对象加载到环境变量中,以便在许多不同的脚本命令中使用?参数-s的作用是什么(npm run getwebroot-s)有文档记录吗?找不到它您需要像下面那样编辑上面的$(npm run getwebroot-s)您可以编写一个快速JavaScript文件,将json文件转换为一组环境变量-,您可以随意将其用于任何您想要的用途,例如,您可以将其转换为节点模块
-s
使npm的输出静音,这是
--loglevel silent
的快捷方式。如果忽略此项,则npm将回显它要运行的脚本。在命令行上尝试一下,看看有什么不同!