首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用类型记录和模块别名开发Npm库

用类型记录和模块别名开发Npm库
EN

Stack Overflow用户
提问于 2020-12-22 13:56:01
回答 2查看 594关注 0票数 0

我正在开发一个npm库,使用类型记录作为编程语言。为了方便地开发它,我在tsconfig.json和module-alias中使用了module-alias选项,以便能够编写诸如import * from '@/utils'之类的导入。问题是,这些路径在转置的js文件中也是相同的。这应该是好的,因为module-alias应该使用这些路径。问题是,只有当我在本地使用它时,它才会这样做,但是当我用npm安装库并尝试运行它时,它就停止工作了。我怎么才能解决这个问题?

注意:如果我使用我的库将__moduleAliases配置放在项目的package.json中,并使用到我库的dist的路径,我就会发现问题所在。但我仍然不知道如何解决这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-25 15:05:56

结果很难解决。我最终使用webpack将所有@别名路径更改为普通路径,从而使这个问题不再持续,并删除了模块别名。我使用的是webpack插件https://www.npmjs.com/package/tsconfig-paths-webpack-plugin,而另一个插件可以不使用webpack https://www.npmjs.com/package/tsconfig-paths

要查看使用webpack编译的库并使用这个插件,您可以看到https://github.com/euberdeveloper/euberlog

票数 0
EN

Stack Overflow用户

发布于 2020-12-22 14:24:51

我想我找到了一个解决办法,但仍然不完美。

对于module-alias,我可以将带有设置的package.json路径作为参数传递,因此我只需使用moduleAlias(path.join(__dirname, '..', 'package.json'));以“绝对”的方式指定库的package.json,即使它是由另一个项目模块别名中的另一个用户安装的,它也将使用我的库的package.json。

还有两个问题:

  • 第一个问题是,如果导入我的库的项目也使用模块别名,它将不再工作,因为它将在我的库中搜索别名,而不是在我的项目中搜索别名。第二个问题是,如果我的项目使用类型记录,当遇到@时会抛出错误。我认为解决这一问题的唯一方法是使用将js结果

中的“@”路径更改为真实路径的方法。

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

https://stackoverflow.com/questions/65409948

复制
相关文章

相似问题

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