猿问

Angular:将服务/组件移动到另一个文件夹

SHORT:重命名服务或组件没有问题,但您也可以将其移动到另一个文件夹吗?

LONG:这是我使用以下ng new service data命令在错误目录中生成的服务:

当我将它从src文件夹移动到文件夹中时,系统会_service询问我是否要更新导入。当然,我按yes,但是在启动应用程序时出现此错误:


Module build failed (from ./node_modules/@ngtools/webpack/src/index.js):

Error: ENOENT: no such file or directory ...\data.service.ts


所以我检查了index.js文件,如果我可以手动更新 data.service.ts 的路径,但这是不可能的,因为这就是index.js文件中的全部内容:


"use strict";


function __export(m) {

    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];

}

Object.defineProperty(exports, "__esModule", { value: true });

__export(require("./angular_compiler_plugin"));

__export(require("./interfaces"));

var loader_1 = require("./loader");

exports.default = loader_1.ngcLoader;

exports.NgToolsLoader = __filename;


HUH函数
浏览 192回答 4
4回答

陪伴而非守候

自动更新导入似乎不适用于嵌套的 Angular 组件文件夹,并且该错误是无用的。检查这些导入是否正确更新(海报示例中 _components 文件夹中的任何内容)。我刚刚遇到了同样的问题。我正在使用“移动 TS”VSCode 扩展,它似乎没有更新按文件夹分组的组件中的导入。例如,考虑以下文件夹结构:> 组件 1> 组件 2> 表单      > 名称组件      > 电子邮件组件> 服务api.service.ts当我将 api.service.ts 从其当前位置移动到 Services 文件夹时,扩展正确地更新了组件 1 和组件 2 中的导入。但是,它未能正确更新名称组件和电子邮件组件中的导入。我猜想原生 VS Code 的“更新导入”选项也有同样的缺陷。因此,我会检查您的 _components 文件夹以确保正确更新了导入。

侃侃无极

在 VS 代码中,您可以简单地重命名组件以包含要用作容器的文件夹,所有内容都会自动更新。假设您有一些类似的东西:并且您想将名为“单值卡”的组件移动到“可视化”文件夹。然后您所要做的就是重命名组件文件夹,如下所示:瞧:注意:重命名后,VS Code 会询问您是否要应用参考重构。当我回答“始终应用参考更新”(或类似的东西)时,它再也没有问过我

开满天机

我们可以将服务和组件移动到所需的文件夹。在 Visual Studio Code 中移动组件或服务后,您必须手动删除初始导入并添加,而不是从源操作自动导入,然后它将正确更新依赖项在这种情况下,Visual Studio Code 似乎不会自动更新导入。

胡子哥哥

我认为唯一的方法是使用任何代码编辑器(使用 vscode)将文件移动到所需位置并手动更新导入。VS 代码还负责 GIT。如果我们从文件夹结构中执行此操作,我认为我们需要删除和添加文件。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答