3

我有一个新安装的 Windows,我第一次尝试运行 ng-packagr。

我收到错误:

Error: Cannot find module '@angular/compiler-cli/src/perform_compile'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\MyUser\AppData\Roaming\npm\node_modules\ng-packagr\lib\ts\tsconfig.js:3:12)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

我确实通过运行安装了角度 CLI

npm install -g @angular/cli@latest

它正在运行 v6.0.8

我的 ng-package.json:

{
    "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
    "lib": {
        "entryFile": "index.ts",
        "externals": {
            "moment": "moment"
        }
    }
}

我在这里想念什么?

4

1 回答 1

2

嘿最近解决了一个类似的问题,您可以尝试以下操作:

  1. 安装最新的node.js(卸载之前的版本)

  2. 全局安装最新的 angular-cli

    npm uninstall -g angular-cli
    npm cache clean or npm cache verify (if npm > 5)
    npm install -g @angular/cli@latest
    
  3. 使用 angular-cli 创建一个新项目 ng new projectname

  4. 将您的文件(模块、组件、指令等)从旧项目复制到新创建的项目中

  5. 安装 ng-packagr npm i ng-packagr

  6. 编辑您的package.json(根项目)

    "scripts": {
        "packagr": "ng-packagr -p ng-package.json"
    }
    

    删除依赖项或将所有依赖项移至 peerDependencies,因为您要创建一个功能模块

  7. ng-package.json(在你的情况下可能会有所不同,但你可以试试这个)

    {
      "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
      "lib": {
        "entryFile": "public_api.ts"
      }
    }
    
  8. public_api.ts(更新模块的相对路径)

    export * from './src/app/modules/yourmodulename/yourmodulename.module
    

就是这样,您现在可以运行npm run packagr它应该可以工作并生成 dist 文件夹。

您可以使用在 npmjs 上发布npm publish dist

我就是这样解决的。

于 2018-07-29T08:21:49.480 回答