javascript - 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;
解决方案
TL;DR:自动更新导入似乎不适用于嵌套的 Angular 组件文件夹,并且该错误是无用的。检查这些导入是否正确更新(海报示例中 _components 文件夹中的任何内容)。
我刚刚遇到了同样的问题。我正在使用“移动 TS”VSCode 扩展,它似乎没有更新按文件夹分组的组件中的导入。例如,考虑以下文件夹结构:
> 组件 1
> 组件 2
> 表单
> 名称组件
> 电子邮件组件
> 服务
api.service.ts
当我将 api.service.ts 从其当前位置移动到 Services 文件夹时,扩展正确地更新了组件 1 和组件 2 中的导入。但是,它未能正确更新名称组件和电子邮件组件中的导入。我猜想原生 VS Code 的“更新导入”选项也有同样的缺陷。因此,我会检查您的 _components 文件夹以确保正确更新了导入。
推荐阅读
- github - VScode 与所有 github 存储库同步(即自动拉取)
- vue.js - 如何从 vue 函数将图像设置为 vue-picture-input
- linux - Scapy:嗅探数据包,修改它,然后发送。数据包从未收到
- html - 显示基于跨度类的图标?
- postgresql - Slick 数据库配置更改为 URL,现在请求很慢
- c - 当我们可以使用 & 运算符传递变量的地址时,为什么要通过指针传递?
- ios - UITextField 占位符文本替换为 Hold to Dictate 消息
- android - 从 Viewpager2 片段访问父片段函数
- xcode - 架构 arm64 的未定义符号:_SWIGRegisterExceptionCallbacksArgument_AppUtil
- python - Python Pandas:创建一个嵌套函数以在最终输出中创建新的列