【问题标题】:npm link is not working with angular-cli created projectsnpm 链接不适用于 angular-cli 创建的项目
【发布时间】:2018-01-10 19:55:47
【问题描述】:

我使用angular-cli 创建了一个项目。有一个AppModuleAppComponent 我想在其他角度应用程序中使用这个AppModule 及其组件(AppComponent)。所以我创建了index.ts 文件并导出了AppModuleAppComponent

export {AppModule} from './src/app/app.module';
export {AppComponent} from './src/app/app.component';

然后使用 npm link 创建本地链接,并使用 package.json 中定义的名称创建链接。

现在在我想使用这个导出模块的其他项目中运行

npm link project-name

链接已成功完成。 我试过了

import { AppModule as AModule} from 'my-components';

但这不起作用,因为 webpack 无法编译 AppModule 文件,因为引用没有得到解决。在 SystemJs 我们在 systemjs.config.js 文件中定义了 this 的映射,但是没有配置文件。

我该如何解决这个问题?

还有其他方法可以复用本地模块吗?

【问题讨论】:

  • 你能解决这个问题吗?
  • 还是不行 :( . 会让你知道的

标签: javascript angular webpack angular-cli npm-link


【解决方案1】:

这是目前的热门话题,似乎还没有完全解决。我得到了以下信息:

由 Angular cliist 创建的链接库并不容易。您可以阅读文档

https://github.com/angular/angular-cli/wiki/stories-linked-library

按照 nimaen 在这篇文章https://github.com/angular/angular-cli/issues/3875 中提供的评论,我能够使其工作

--BR 丹尼斯

【讨论】:

  • 我仍然有这个问题,我无法使用问题页面中提供的解决方案来解决它,知道吗?
【解决方案2】:

你不能。让我引用

我们目前不支持使用 CLI 构建库。我们的确是 支持在 CLI 应用程序中正确构建的链接库。

https://github.com/angular/angular-cli/issues/9273

【讨论】:

  • 看看这里。我认为 tgz 替代方案不那么令人头疼。至少在大多数情况下,它似乎问题较少。 dev.to/vishesh/…
  • 这个答案不再有效
【解决方案3】:

将以下内容添加到您正在加载 npm 链接库的主机应用程序的 tsconfig.json 中。

    "paths": {
      "@angular/*": ["node_modules/@angular/*"]
    }

显然链接的包不能正常使用对等依赖。这将强制库使用您的应用程序的 node_modules/@angular/* 库,当您 npm install 库时会发生这种情况。

【讨论】:

  • 非常感谢!!!!!!你是我的英雄
【解决方案4】:

它现在可以在您的 angular.json 中使用 "preserveSymlinks": true

只需将其添加到那里:项目 > 架构师 > 构建。

【讨论】:

    【解决方案5】:

    在 Angular 7 中,"preserveSymlinks": true

    它对我有用:项目 > 架构师 > 构建 > 选项

    【讨论】:

      【解决方案6】:

      您可以将项目的链接放到tsconfig.js 文件中,以获取您希望在源代码表单中工作的任何模块。

      请注意,模块别名必须是指向不带tsjs 扩展名的TypeScript 文件的指针,而不是指向package.json 文件目录的指针。

      {
        "compilerOptions": {
          ...
          "paths": {
            "my-third-party-package": [
              // Can be project root relative path or abs path on your hd
              "projects/my-third-party-package/src/index"
            ],
          }
        },
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-07
        • 2017-08-14
        相关资源
        最近更新 更多