首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将本地开发的模块打包/导入到项目中

将本地开发的模块打包/导入到项目中
EN

Stack Overflow用户
提问于 2018-01-05 01:44:52
回答 1查看 27.1K关注 0票数 10

我试图在不将其发布到npm存储库的情况下将本地开发的角项目/模块导入到角应用程序中。

首先,我遵循本教程以UMD格式构建模块(我跳过发布部分):

https://medium.com/@cyrilletuzi/how-to-build-and-publish-an-angular-module-7ad19c0b4464

然后,通过执行以下命令行,试图在最终应用程序中安装我的模块:

代码语言:javascript
运行
复制
npm install ../path-to-my-module --save

这在我的应用程序的@myscope/myModule中成功地将我的模块添加为package.json,但问题是应用程序中模块的导入没有被识别。最后,我得到了以下错误:

代码语言:javascript
运行
复制
Cannot find module @myscope/myModule

在我的node_modules中,创建了文件夹@myscope,其中有一个以myModule命名的../path-to-my-module的快捷方式。

问题的根源是有捷径吗?如果是的话,该如何解决呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-08 12:26:55

我发现这篇文章帮助我解决了问题:

https://medium.com/@nikolasleblanc/building-an-angular-4-component-library-with-the-angular-cli-and-ng-packagr-53b2ade0701e

简单地总结一下,我是这样做的:

  1. 安装ng-packagr
    • 全球范围内安装: npm install -g ng-packagr
    • 将其安装在项目模块中: npm install ng-packagr --save-dev

  1. 在项目的根文件夹中创建ng-package.json,并添加以下内容:{ "$schema":“$schema”:"lib":{ "entryFile":"public_api.ts“"externals":{”@public_api.ts/cdk“:"ng.cdk",”@ and /cdk/accordion“:"ng.cdk.accordion",//}}

在我的例子中,为了避免打包/构建错误,我不得不添加外部依赖项:

  1. 在项目的根文件夹中创建public_api.ts,并添加以下内容: export * from './src/app/modules/myFeature/my-feature.module'
  2. 编辑package.json,并将packagr行添加到scripts标记中:

代码语言:javascript
运行
复制
"scripts": {
  //...
  "packagr": "ng-packagr -p ng-package.json"
}

  1. 通过从根文件夹运行以下命令创建包: npm run packagr
  2. 为当地发展安装它:
代码语言:javascript
运行
复制
- Pack the module by running the following command from the `dist` folder:

npm pack

-从最后项目中安装包装模块:

npm install ../some-relative-path/dist/my-component-library-0.0.0.tgz

然后,我可以从我的最终项目的任何其他模块或组件中导入我的模块。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48106093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档