我们有一个本地NuGet供稿,其中包含一些仅限JS内容的包 我想在一个普通的JS应用程序中安装这些软件包(我在Brackets中编辑,我根本不使用VS)。显然像Bower这样的东西会更合适,但我不想维护两个包裹饲料系统。
如果我nuget install MyPackage
,它会下载并解压缩包,但不会将内容文件复制到子文件夹(实际上它会下载当前文件夹中的包)。
我可以使用nuget.exe实际复制内容,还是必须是外部步骤?
答案 0 :(得分:1)
好的,这是我为命令行更新做的一些初步工作(如果你手动修改packages.config,它也适用于安装)。
它有以下限制:
代码:
Set-StrictMode -Version 2
$ErrorActionPreference = 'Stop'
$packagesDirectory = (Get-Item nuget_packages)
$packagesDirectory.GetDirectories() | % {
Write-Host "Deleting $_"
Remove-Item $_.FullName -Recurse
}
Write-Host "Starting nuget.exe"
Start-Process nuget -ArgumentList "install packages.config" -WorkingDirectory nuget_packages -NoNewWindow -Wait
$packagesDirectory.GetDirectories() | % {
$contentPath = Join-Path (Join-Path $packagesDirectory.Name $_) 'content'
if (!(Test-Path $contentPath)) {
return;
}
Get-ChildItem $contentPath -Exclude *.transform | % {
$target = $_.Name
if (Test-Path $target) {
Write-Host "Deleting $target"
Remove-Item $target -Recurse
}
Write-Host "Copying $(Join-Path $contentPath $_.Name) to $target"
Copy-Item $_.FullName -Destination $target -Recurse
}
}
答案 1 :(得分:0)
我使用了标签<contentFiles>
和flatten =&#34; true&#34;从根目录下载包文件。我的nuget包中包含Typescript文件。
<contentFiles>
<files include="cm-common/**/*" buildAction="None" flatten="true" />
</contentFiles>
我最初使用<files>
标记,这会提取该位置的文件
根/ package.name /内容/ {文件}
这可能有助于某人