多个软件包版本


🌐 Multiple package versions

不同的包可以依赖同一个包的不同版本。因为 dependencies 会将裸的说明符映射到包键,所以两个包可以将同一个说明符映射到不同的目标:

🌐 Different packages can depend on different versions of the same package. Because dependencies maps bare specifiers to package keys, two packages can map the same specifier to different targets:

{
  "packages": {
    "app": {
      "url": "./app",
      "dependencies": {
        "component": "component-v2"
      }
    },
    "legacy": {
      "url": "./legacy",
      "dependencies": {
        "component": "component-v1"
      }
    },
    "component-v1": {
      "url": "./vendor/component-1.0.0"
    },
    "component-v2": {
      "url": "./vendor/component-2.0.0"
    }
  }
} 

applegacy 都可以 import 'component',但它们会根据各自声明的依赖解析到不同的路径。

🌐 Both app and legacy can import 'component', but they resolve to different paths based on their declared dependencies.