Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以将应用程序放在与Angular中的工作区相同的文件夹级别上吗?_Angular_Monorepo_Nrwl - Fatal编程技术网

我可以将应用程序放在与Angular中的工作区相同的文件夹级别上吗?

我可以将应用程序放在与Angular中的工作区相同的文件夹级别上吗?,angular,monorepo,nrwl,Angular,Monorepo,Nrwl,我正在尝试在Angular 8中创建一些应用程序,我想知道是否可能有这样的文件夹结构: |/Myproj |/Workspace | |/Application_1 | |/Application_2 在教程中的任何地方,带有应用程序的文件夹都位于工作区/项目内,但出于某种原因,我希望它位于同一级别,因此直接位于Myproj文件夹内的工作区旁边。我试图更新Workspace/angular.json中配置中的所有路径,例如从

我正在尝试在Angular 8中创建一些应用程序,我想知道是否可能有这样的文件夹结构:

|/Myproj
       |/Workspace
       |
       |/Application_1
       |
       |/Application_2
在教程中的任何地方,带有应用程序的文件夹都位于
工作区/项目
内,但出于某种原因,我希望它位于同一级别,因此直接位于
Myproj
文件夹内的工作区旁边。我试图更新
Workspace/angular.json
中配置中的所有路径,例如从这个
的“根”:“项目/应用程序1”,到这个
的“根”:./Application\u 1,
。但是在构建(
ng build--project=Application\u 1
)的过程中,我一直都有一些错误,例如发生了一个未经处理的异常:找不到node\u modules目录。


我想知道这是否可能?或者我不应该浪费时间,因为这就是它的工作原理,没有办法改变它。我还试图找到一些解决方案,但没有成功。

更新

如果你不明白你为什么要改变现状,我认为你的方法行不通。有关节点如何定位节点\模块目录的信息,请参阅。如果在根目录中找不到,它将搜索父目录,而不是子目录。听起来您希望在工作区(子目录)中有angular.json和node_模块,这是有问题的

如果您不喜欢当前嵌套的深度,可以将整个Angular workspace向上移动一级吗(基本上是去掉workspace,让Myproj成为新的工作区根)

简单地将项目移动到工作区中不同目录的旧答案

这里是NX用户。这当然有可能,但我不能建议你这样做。在
应用程序
libs
之间至少有一个层次的组织是非常有价值的,尤其是随着monorepo的发展

但是如果你打算这么做,我已经在下面列出了需要在NX monorepo中更新的文件和属性。对于普通的角度工作区,想法也是一样的,您需要修改文件路径,而不仅仅是
angular.json

注意:不要将绝对路径替换为相对路径<代码>应用程序/我的应用程序变为<代码>我的应用程序而不是<代码>。/我的应用程序

我的应用程序的angular.json配置
  • 更新以下属性的绝对路径:
    • root
    • sourceRoot
    • architect.build.options.outputPath
    • architect.build.options.index
    • architect.build.options.main
    • architect.build.options.polyfills
    • architect.build.options.tsConfig
    • architect.build.options.assets
    • architect.build.options.style
    • architect.build.configurations.production.fileReplacements.replace
    • architect.build.configurations.production.fileReplacements.with
    • architect.lint.options.tsConfig
    • architect.lint.options.exclude
    • architect.test.options.jestConfig
    • architect.test.options.tsConfig
    • architect.test.options.setupFile
我的应用程序/jest.config.js
  • 更新以下属性的相对路径:
    • 预设
    • coverage目录
我的应用程序/tsconfig.app.json
  • 更新以下属性的相对路径:
    • compilerOptions.outDir
我的应用程序/tsconfig.json
  • 更新以下属性的相对路径:
    • 扩展
我的应用程序/tsconfig.spec.json
  • 更新以下属性的相对路径:
    • compilerOptions.outDir
我的应用程序/tslint.json
  • 更新以下属性的相对路径:
    • 扩展

如果您的应用程序位于
Myproj
的根目录中,那么
工作区
文件夹中会有什么。Angular.json、node_模块、Tconfig.json等…我必须让NX吗?最近更新了我的答案。您不需要使用NX,只需要知道您需要更新多个文件中的大量文件路径(不仅仅是angular.json)。我列出的一些文件只适用于使用NX创建的应用程序。我个人推荐NX,尽管你说过
不要用相对路径代替绝对路径。应用程序/我的应用程序变为我的应用程序而不是../my app
如何?如果应用程序文件夹不再位于工作区文件夹中,那么我们必须从工作区路径返回主文件夹,在本例中为
Myproj
。我想我对您在问题中如何命名文件夹感到困惑。我原本以为你想把你的应用程序升级一级,这就是我回答这个问题的方式。您是说要将应用程序1移出工作区吗?是的,这就是我的意思。还有可能吗?