首页 > 解决方案 > Npm 链接尝试在 src 文件夹而不是 dist 文件夹中查找模块

问题描述

我通过创建一个自定义构建器来使用 Angular CLI Builder,该构建器扩展了资产配置,angular.json以防库拥有自己的资产。我用于nrwl管理工作区。

我创建了一个 Angular cli 构建器库并运行npm link. 它创建一个 dist 文件夹。在使用该库的项目中,我运行npm link packagename但当我运行时npm run build,它说Can not find module X in path ../src/command. 我不明白为什么它查看src文件夹而不是dist文件夹?

我的 package.json 文件

{
  "name": "packagename",
  "version": "1.0.0",
  "description": "",
  "main": "src/index.js",
  "builders": "builders.json",
  "scripts": {
    "build": "tsc"
  },
  "devDependencies": {
    "@angular-devkit/architect": "^0.803.3",
    "prettier": "1.18.2",
    "ts-jest": "24.0.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "^3.4.5"
  }
}

和 tsconfig.json 文件

{
  "compilerOptions": {
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "baseUrl": ".",
    "outDir": "dist",
    "rootDir": "src",
    "module": "commonjs",
    "target": "es5",
    "types": ["node"],
    "lib": ["es2015", "es2017"]
  },
  "include": ["src/**/*.ts"],
  "exclude": ["example/**/*.ts"]
}

你能帮我解决这个问题吗?

标签: node.jsangularnpm

解决方案


一切都按预期工作。当我有一个包时,我需要指向 angular.json 来使用我的构建器。问题是当它查看builders.json时

{
  "builders": {
    "browser": {
      "implementation": "./dist/browser", --it was "./src/browser"
      "schema": "../../../node_modules/@angular-devkit/build-angular/src/browser/schema.json",
      "description": "Add assets and runs @angular-devkit/build-angular:browser"
    }
  }
}

这就是为什么它指向src文件夹而不是dist文件夹。


推荐阅读