Angular-CLI/Webpack 项目中出现的错误警告“not found”不属实。

11

我收到了很多警告,内容如下:找不到某些东西,但它们在正确的位置上,而且我的应用程序也可以运行,所以这些警告肯定是错误的。 我正在使用webpack版本2.1.0-beta.22和webpack-dev-server 2.1.0-beta.10. 我的项目托管在GitHub这里

你知道怎么解决吗?谢谢!

[WDS] Warnings while compiling.
client:73 ./src/app/debate/claim/claim.component.ts
38:55 export 'Claim' was not found in '../../core/store/claim/claim.model'
Error: export 'Claim' was not found in '../../core/store/claim/claim.model'
    at HarmonyImportSpecifierDependency.getWarnings (/Users/Dan/work/bernierebuttals/gba/node_modules/angular-cli/node_modules/webpack/lib/dependencies/HarmonyImportSpecifierDependency.js:34:14)
    at /Users/Dan/work/bernierebuttals/gba/node_modules/angular-cli/node_modules/webpack/lib/Compilation.js:645:21
    at Array.forEach (native)
    at /Users/Dan/work/bernierebuttals/gba/node_modules/angular-cli/node_modules/webpack/lib/Compilation.js:644:22
    at Array.forEach (native)
    at Compilation.reportDependencyWarnings (/Users/Dan/work/bernierebuttals/gba/node_modules/angular-cli/node_modules/webpack/lib/Compilation.js:643:9)
    at Compilation.<anonymous> (/Users/Dan/work/bernierebuttals/gba/node_modules/angular-cli/node_modules/webpack/lib/Compilation.js:505:8)
    at Array.forEach (native)
    at Compilation.finish 

完整的堆栈跟踪信息

文件结构如下:

app
├── core

│   ├── store

│   │   ├── claim
│   │   │   ├── README.md
│   │   │   ├── claim.actions.ts
│   │   │   ├── claim.effects.ts
│   │   │   ├── claim.model.ts
│   │   │   └── claim.reducer.ts

├── debate
│   ├── README.md
│   ├── claim
│   │   ├── claim.component.css
│   │   ├── claim.component.html
│   │   ├── claim.component.spec.ts
│   │   └── claim.component.ts

并且从./src/app/core/store/claim/claim.model.ts

import { Rebuttal } from '../rebuttal/rebuttal.model';

export interface Claim {
...

2
你应该从清理项目开始。有两个 tsconfig.json 文件:一个在根目录下,另一个在 src 目录下。很难知道你希望使用哪一个。然后你的 package.json 定义了多次相同的依赖项。请尝试正确地将开发依赖项(如 style-loadercss-loader 等)与运行时依赖项分离开来。 - osechet
@osechet 谢谢。你可能已经注意到,我将部分简化的示例混合在一起,以希望能够综合展示雇佣开发人员在现实生活中所从事的工作。每个示例都有自己的做法,但没有太多解释原因。其中一个示例将所有前端依赖项放在了devDependencies中,而 tsconfig.json 则出现在不同的位置。因此,我将两个 tsconfig.json 合并成了一个,但会遇到新的错误,不过我会继续努力解决问题。我不希望你认为我忽略了你的帮助,我很感激。 - Dan Cancro
搞定了!我对 tsconfig.json 进行了一次小修改,警告消失了。 - Dan Cancro
1个回答

5
也许这些链接可以解决你的问题:[1][2] 所以我尝试添加一个新文件,只在接口中导出,警告消失了:
我创建了一个用于 claim、claim-rebuttal 和 rebuttal 的接口文件:
/** /src/app/core/store/claim/claim.interface.ts */
export { Claim } from './claim.model'


/** /src/app/core/store/claim-rebuttal/claim-rebuttal.interface.ts */
export { ClaimRebuttal } from './claim-rebuttal.model'


/** /src/app/core/store/rebuttal/rebuttal.interface.ts */
export { Rebuttal } from './rebuttal.model'

然后我在index.ts中将其导出

export { Claim } from './claim/claim.interface'
export { Rebuttal } from './rebuttal/rebuttal.interface'
export { ClaimRebuttal } from './claim-rebuttal/claim-rebuttal.interface'

最后,只需将其更改为claim.component和其他文件中的内容:

import { Claim, Rebuttal, ClaimRebuttal }  from '../../core/store';
// ...

@Component({ ...})
export class ClaimComponent {

同时还有反驳组件:

import { Rebuttal, Claim }  from '../../core/store';

@Component({...})
export class RebuttalComponent implements OnInit {
...

1
谢谢提供的链接。我猜我运气不错,根据 @ocechet 的建议删除了一个多余的 tsconfig.json 文件就解决了问题,而不是你提出的解决方案。我会记住这个方法,希望在下次遇到之前这个 bug 已经消失了。 - Dan Cancro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接