嵌套构建在管道中失败:找不到在本地构建时可以找到的模块
Nest build fails in pipeline: Cannot find modules which can be found when building locally
在我的 NestJS 项目中,构建和 运行ning 在本地工作,但是在我的 Azure 管道中构建相同的代码时,它最近开始失败,因为在命令 npm run build
开始。当我在本地 运行 命令时,没有任何问题并且构建正确。
确实有很多模块可以正确找到(或没有给出错误),那么这些为什么不呢?您可以在 Imgur 上的这张图片中找到我的 file layout 的图片,相关文件可见。所有 类 都被声明为 export class ... {}
并且其中大部分也在 AppModule 中导入,它们不会报错。
流水线布局(相关部分):
trigger:
- master
- dev
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
displayName: 'Install Node 12'
inputs:
versionSpec: 12.0.0
- script: |
npm install -g typescript
npm install
npm test
displayName: 'run tests'
- script: |
npm run build
displayName: 'build dist folder'
管道日志:(相关部分)
Generating script.
Script contents:
npm run build
========================== Starting Command Output ===========================
> fleetbot-nestjs@0.0.1 prebuild /home/vsts/work/1/s
> rimraf dist
> fleetbot-nestjs@0.0.1 build /home/vsts/work/1/s
> nest build
10 import { MailerService } from "../../Mailer/mailer.service";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/app.module.ts:13:30 - error TS2307: Cannot find module './Mailer/mailer.module'.
13 import { MailerModule } from './Mailer/mailer.module';
~~~~~~~~~~~~~~~~~~~~~~~~
src/app.module.ts:14:34 - error TS2307: Cannot find module './Mailer/mailer.controller'.
14 import { MailerController } from './Mailer/mailer.controller';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/app.module.ts:15:33 - error TS2307: Cannot find module './Teams/teams.controller'.
15 import { TeamsController } from './Teams/teams.controller';
~~~~~~~~~~~~~~~~~~~~~~~~~~
src/app.module.ts:16:37 - error TS2307: Cannot find module './Chatlayer/chatlayer.controller'.
16 import { ChatlayerController } from './Chatlayer/chatlayer.controller';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/mailer/mailer.module.ts:4:33 - error TS2307: Cannot find module '../Mailer/mailer.provider'.
4 import { mailerProviders } from "../Mailer/mailer.provider";
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Found 9 error(s).
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! fleetbot-nestjs@0.0.1 build: `nest build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the fleetbot-nestjs@0.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/vsts/.npm/_logs/2020-06-03T18_00_47_946Z-debug.log
##[error]Bash exited with code '1'.
Finishing: build dist folder
它通过将构建代理更改为 macOs 来工作。确实一定是区分大小写出了问题。
我在使用 bitbucket 管道时遇到了类似的问题。这是因为我在不同的步骤中编写了npm install
和npm run build
,因此无法找到下一步所需的模块。
我在对 Azure 管道实施测试时遇到了类似的问题。在我的例子中,它是一个名为 karma.config.ci.js
的模块。必须在我的根目录中添加此文件才能解决问题。
在我的 NestJS 项目中,构建和 运行ning 在本地工作,但是在我的 Azure 管道中构建相同的代码时,它最近开始失败,因为在命令 npm run build
开始。当我在本地 运行 命令时,没有任何问题并且构建正确。
确实有很多模块可以正确找到(或没有给出错误),那么这些为什么不呢?您可以在 Imgur 上的这张图片中找到我的 file layout 的图片,相关文件可见。所有 类 都被声明为 export class ... {}
并且其中大部分也在 AppModule 中导入,它们不会报错。
流水线布局(相关部分):
trigger:
- master
- dev
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
displayName: 'Install Node 12'
inputs:
versionSpec: 12.0.0
- script: |
npm install -g typescript
npm install
npm test
displayName: 'run tests'
- script: |
npm run build
displayName: 'build dist folder'
管道日志:(相关部分)
Generating script.
Script contents:
npm run build
========================== Starting Command Output ===========================
> fleetbot-nestjs@0.0.1 prebuild /home/vsts/work/1/s
> rimraf dist
> fleetbot-nestjs@0.0.1 build /home/vsts/work/1/s
> nest build
10 import { MailerService } from "../../Mailer/mailer.service";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/app.module.ts:13:30 - error TS2307: Cannot find module './Mailer/mailer.module'.
13 import { MailerModule } from './Mailer/mailer.module';
~~~~~~~~~~~~~~~~~~~~~~~~
src/app.module.ts:14:34 - error TS2307: Cannot find module './Mailer/mailer.controller'.
14 import { MailerController } from './Mailer/mailer.controller';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/app.module.ts:15:33 - error TS2307: Cannot find module './Teams/teams.controller'.
15 import { TeamsController } from './Teams/teams.controller';
~~~~~~~~~~~~~~~~~~~~~~~~~~
src/app.module.ts:16:37 - error TS2307: Cannot find module './Chatlayer/chatlayer.controller'.
16 import { ChatlayerController } from './Chatlayer/chatlayer.controller';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/mailer/mailer.module.ts:4:33 - error TS2307: Cannot find module '../Mailer/mailer.provider'.
4 import { mailerProviders } from "../Mailer/mailer.provider";
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Found 9 error(s).
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! fleetbot-nestjs@0.0.1 build: `nest build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the fleetbot-nestjs@0.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/vsts/.npm/_logs/2020-06-03T18_00_47_946Z-debug.log
##[error]Bash exited with code '1'.
Finishing: build dist folder
它通过将构建代理更改为 macOs 来工作。确实一定是区分大小写出了问题。
我在使用 bitbucket 管道时遇到了类似的问题。这是因为我在不同的步骤中编写了npm install
和npm run build
,因此无法找到下一步所需的模块。
我在对 Azure 管道实施测试时遇到了类似的问题。在我的例子中,它是一个名为 karma.config.ci.js
的模块。必须在我的根目录中添加此文件才能解决问题。