【问题标题】:Custom paths for package managers like Nuget/npm/bower/typings包管理器的自定义路径,如 Nuget/npm/bower/typings
【发布时间】:2016-04-06 13:11:30
【问题描述】:

我正在基于 AngularJS 和 Typescript 的 Visual Studio 中建立一个项目,但一旦我需要安装依赖项,我就不得不处理另一个包管理器,这有点令人沮丧。

我遇到的问题是包管理器要求包含依赖项的文件位于特定位置。

我们以 npm 为例。 我将 packages.json 放在 ./SolutionDirectory/MyApp.Web/ 但是当我运行 npm install 时,我只是得到 ENOENT: No such file or directory. 因为 cwd 是 ./SolutionDirectory

如果我正在执行 cd ./SolutionDirectory/MyApp.Web 并在此之后运行 npm install,它工作正常。

对于 bower,我可以通过传递额外的参数来处理类似的问题,例如:

凉亭安装 --config.cwd=./SolutionDirectory/MyApp.Web/app/lib --config.directory=vendor

此命令只是从 ./SolutionDirectory/MyApp.Web/app/lib 获取 bower.json 并将包安装到 ./SolutionDirectory/MyApp.Web/app/lib/vendor

  1. 有没有办法在安装之前将 packages.json 位置传递给 npm?

  2. 有没有办法在 typings.json 安装之前将其位置传递给 typings?为安装的类型传递目标目录位置?

  3. 同样适用于 Nuget 吗?

【问题讨论】:

    标签: npm bower bower-install npm-install tsd


    【解决方案1】:

    对于 npm:

    npm install <folder>

    <folder> 是包含package.json 文件的文件夹的路径。

    对于打字:

    typings install [<name>=]<location>

    <location>typings.json 的路径

    对于 NuGet:

    nuget install packageId|pathToPackagesConfig [options]

    pathToPackagesConfigpackages.config 文件的路径。

    所以,要回答这个问题,是的,可以为所有这些包管理器指定配置文件位置的路径。

    【讨论】:

    【解决方案2】:
    1. 有没有办法在安装之前将 packages.json 位置传递给 npm?

    不,没有。目前无法覆盖 npm 中的 cwd 值。您应该移动目录并运行它:

    `$ cd SolutionDirectory/MyApp.Web/ && npm install`
    

    以下是与此类似的讨论:https://github.com/npm/npm/pull/10958

    1. 有没有办法在typings.json 安装之前将其位置传递给typings?为安装的类型传递目标目录位置?

    技术上是的,但我猜你只想用typings.jsontypings install。将typings.jsonpackage.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
    
    1. Nuget 也可以这样做吗?

    Nuget 也是包管理器,所以它应该有类似的功能,比如nuget mirror 命令可以是npm config set registrynuget locales 可以是npm cache 我猜。从技术上讲,这是一个不同的软件,但我认为了解这两个软件是了解彼此概念和总结的好方法。

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      • 2019-07-30
      • 2017-11-10
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多