首页 > 解决方案 > Angular 库 - 无法读取未定义的属性“ɵmod”

问题描述

我一直在使用 Cory Rylan 的@ngx/json-ld 包在我的角度组件上渲染 LD+json。今天我尝试将我的 Angular 应用程序升级到 Angular 12,但现在它给出了错误。所以我决定用一个包含这个组件的角度库创建一个新项目。同一存储库中的演示项目运行良好。但是当我在我的项目中使用我自己的库时,我也会遇到同样的错误。

未捕获的类型错误:无法读取未定义的属性“ɵmod”

未捕获的类型错误:无法读取未定义的属性“ɵmod”

我该如何解决这个问题?这是角度本身的问题吗?

git clone https://github.com/PieterjanDeClippel/LdJsonTest
cd LdJsonTest
npm install
npm start -- --open

编辑:

但是,似乎当我在 StackBlitz 中创建项目时,一切正常......

https://stackblitz.com/edit/angular-ivy-d7tgzx?embed=1&file=package.json

标签: angularangular-libraryangular12

解决方案


我不知道谁发表了评论,但你是对的。安装的包应该包含文件夹bundles, esm2015, fesm2015, lib. 显然我是npm publish错误的文件夹。

我需要做的就是将我的工作流程更改为发布package=dist/path/to/package.json而不是projects/path/to/package.json.

我的最终工作流程是:

name: npm-publish

on:
  push:
    branches: [ master ]

jobs:
  build:
  
    name: npm-publish
    runs-on: ubuntu-latest
    
    permissions: 
      contents: read
      packages: write 
    
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    
    - name: Setup node
      uses: actions/setup-node@v2
      with:
        node-version: 14

    - name: Install dependencies
      run: npm install
    
    - name: Build
      run: npm run build -- --prod

    - name: Test
      run: npm run test-headless
    
    - name: Push to NPM
      uses: JS-DevTools/npm-publish@v1
      with:
        package: 'dist/path/to/package.json'
        registry: 'https://registry.npmjs.org'
        token: ${{ secrets.PUBLISH_NODE_TO_NPMJS_COM }}
        access: 'public'

    - name: Push to Github
      uses: JS-DevTools/npm-publish@v1
      with:
        package: 'dist/path/to/package.json'
        registry: 'https://npm.pkg.github.com'
        token: ${{ github.token }}
        access: 'public'

目录 package.json包含以下脚本(其他无关紧要):

{
  ...,
  "scripts": {
    ...
    "test-headless": "ng test --watch=false --browsers=ChromeHeadless"
  }
}

推荐阅读