我正在开发一个npm库,使用类型记录作为编程语言。为了方便地开发它,我在tsconfig.json和module-alias中使用了module-alias选项,以便能够编写诸如import * from '@/utils'之类的导入。问题是,这些路径在转置的js文件中也是相同的。这应该是好的,因为module-alias应该使用这些路径。问题是,只有当我在本地使用它时,它才会这样做,但是当我用npm安装库并尝试运行它时,它就停止工作了。我怎么才能解决这个问题?
注意:如果我使用我的库将__moduleAliases配置放在项目的package.json中,并使用到我库的dist的路径,我就会发现问题所在。但我仍然不知道如何解决这个问题。
发布于 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
发布于 2020-12-22 14:24:51
我想我找到了一个解决办法,但仍然不完美。
对于module-alias,我可以将带有设置的package.json路径作为参数传递,因此我只需使用moduleAlias(path.join(__dirname, '..', 'package.json'));以“绝对”的方式指定库的package.json,即使它是由另一个项目模块别名中的另一个用户安装的,它也将使用我的库的package.json。
还有两个问题:
中的“@”路径更改为真实路径的方法。
https://stackoverflow.com/questions/65409948
复制相似问题