我正在基于AngularJS和Typescript在Visual Studio中设置一个项目,有点令人沮丧的是,一旦我需要安装依赖项,我就必须处理另一个包管理器。
我遇到的问题是包管理器要求包含依赖项的文件位于特定位置。
我们以npm为例。 我将packages.json放在 ./ SolutionDirectory / MyApp.Web / 但是当我运行 npm install 时,我只是得到 ENOENT:没有这样的文件或目录。因为cwd是./ ResolutionDirectory
如果我正在使用cd ./SolutionDirectory/MyApp.Web并在此之后运行npm install,它可以正常工作。
对于凉亭我只能通过传递其他参数来处理类似问题:
bower install --config.cwd =。/ SolutionDirectory / MyApp.Web / app / lib --config.directory = vendor
此命令只从./SolutionDirectory/MyApp.Web/app/lib获取bower.json,并将软件包安装到./SolutionDirectory/MyApp.Web/app/lib/vendor
在安装之前,是否有办法将packages.json位置传递给npm?
有没有办法在安装之前将typings.json位置传递给打字机?传递安装类型的目标目录位置?
对Nuget来说是否可行?
答案 0 :(得分:1)
不,没有。目前无法在npm中覆盖cwd
值。您应该移动目录并运行它:
`$ cd SolutionDirectory/MyApp.Web/ && npm install`
以下是对此的类似讨论:https://github.com/npm/npm/pull/10958
技术上是的,但我想您只想typings install
typings.json
。如何将typings.json
放在与package.json
相同的路径并使用npm lifecycle script?
$ ls
package.json typings.json
$ cat package.json
{
"name": "name",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"postinstall": "typings install"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"typings": "^0.7.12"
}
}
$ npm install
=> after npm install, typings install will start with typings.json
Nuget也是包管理器,因此它应该具有类似的功能,例如nuget mirror
命令可以是npm config set registry
而nuget locales
可以是npm cache
我猜。从技术上讲,它是一个不同的软件,但我认为对这两个软件的理解是了解彼此概念和总结的好方法。
答案 1 :(得分:1)
适用于npm:
npm install <folder>
<folder>
是包含package.json
文件的文件夹的路径。
对于打字:
typings install [<name>=]<location>
<location>
是typings.json
对于NuGet:
nuget install packageId|pathToPackagesConfig [options]
pathToPackagesConfig
是packages.config
文件的路径。
因此,回答这个问题,是的,可以为所有这些包管理器指定配置文件位置的路径。