我创建了一个库,可以帮助使用rx流跟踪对象状态 我试图将它发布到npm社区。 p>
你可以查看In my github repo
我想将我的库编译为单个Javascript文件,并创建一个声明文件" .d.ts"对于Typescript用户。
据我所知,在运行$ npm publish
时,我会释放整个存储库。我想要的是使用库源和声明文件释放dist文件夹,这样最终用户就可以通过他们的代码调试我的库,所以我也需要源地图。
所以首先我需要将我的src目录编译为单个javascript文件,我有两种方法可以使用tsc或webpack。
到目前为止我尝试了什么,你应该知道:
我使用了tsconfig.json中配置的模块别名。 我将库的业务逻辑分离为多个文件。 我想使用" @ lib"导入内部库的模块。前缀。
所以在我的tsconfig.json中我添加了:
"paths": {
"@lib/*": [
"src/*"
]
},
仅此一点就会造成一些问题。
首先运行命令:
$ tsc src/index.ts
根本不起作用,它向我显示错误:
src/index.ts(3,15): error TS2307: Cannot find module '@lib/state-traceable'.
src/index.ts(4,15): error TS2307: Cannot find module '@lib/traceable-decorator'. src/index.ts(5,15): error TS2307: Cannot find module '@lib/effect-decorator'.
src/index.ts(6,15): error TS2307: Cannot find module '@lib/meta'.
然后运行命令:
$ tsc
确实有效,但它编译每个源文件并为每个源文件创建声明文件。 此外,它保留路径别名" @lib / *"而不是将它编译成与相对路径兼容的javscript" ../"," ./"等...
使用网络包:
我成功将我的所有库源捆绑到一个文件中并摆脱了" @ lib"但是我无法创建单个声明文件。 我正在使用" awesome-typescript-loader" webpack的插件。
我创建了一个问题,认为它是一个错误但我收到了他们的任何回复: https://github.com/s-panferov/awesome-typescript-loader/issues/559
还试图从Gitter聊天,Typescript社区," awesome-typescript-loader"获得一些帮助。图书馆没有专门的聊天,但无法找到任何有用的信息。我见过的大多数例子中,Typescript库出版商过去常常在他们的源目录中创建一个文件:" index.ts"它使生活更轻松,因为你可以使用tsc并将该单个文件编译为javascript文件。
我希望我能在这里找到救恩。
有关环境本身的一些一般信息:
操作系统:Windows 10 Pro
节点版本:9.5.0
npm版本:5.6.0
webpack版本:4.2.0
答案 0 :(得分:0)
请使用下面的路径配置
"paths": {
"@lib/state-traceable": ["src/state-traceable.ts"],
"@lib/meta": ["src/meta.ts"],
"@lib/effect-decorator": ["src/effect-decorator.ts"],
"@lib/traceable-decorator": ["src/traceable-decorator.ts"],
"@lib/contracts/*": ["src/contracts/*"],
"@lib/utils/*": ["src/utils/*"],
"@lib/rx-operators/*": ["src/rx-operators/*"]
},