如何使 Angular CLI 引用不同的 node_modules 文件夹?

cod*_*ash 5 angular-cli angular

我正在创建一个新的 Angular 项目而不下载依赖项,例如:ng new sample-app --skip-install

我在名为 old-app 的不同角度应用程序的不同文件夹中的 node_modules 中拥有所有必要的依赖项。我希望新创建的示例应用程序引用旧应用程序的node_modules。我怎样才能实现这个目标?

Osc*_*Paz 4

嗯,最简单的方法是创建一个sample-app指向另一个的符号链接node_modules

如果你在窗户里,

cd sample-app
mklink /J node_modules "../older-app/node_modules"
Run Code Online (Sandbox Code Playgroud)

不确定 Linux 或 MacOS 中的语法,但它会类似。

不过,我并不真正推荐这样做,因为虽然在一个目录中更新或添加包会影响两者(因为两者node_modules实际上是相同的),但只会package.json修改您所在目录的文件。

这意味着,如果您与其他人共享该应用程序或将其放入另一台计算机中,运行npm install并不能保证您获得相同的软件包,这可能会导致错误,因此请自行承担风险。

例如,如果您将older-appAngular 更新到版本 6,sample-app也会被修改。因此,您可以更改代码,针对 Angular 6 进行开发。但是,如果您随后将该应用程序上传到 Github 或其他存储库,则无论谁下载它,当他们运行时npm install都会获得 Angular 5,这肯定会导致错误。

package.json文件必须始终与目录同步node_modules