dav*_*vid 4 node.js typescript
我想将我的应用程序拆分为不同的节点模块,并有一个主模块来构建所有其他模块,并且我想将 typescript 与 es6 模块一起使用。
这是我计划的项目结构:
我希望能够在框架中定义可以在 dep-a、dep-b 和 main 中使用的接口。
我该如何正确设置?我可以编译主模块中的所有内容吗?我是否需要为框架、dep-a、...和另一个打字文件创建不同的包?对此最好的方法是什么?
我已经设置了一些测试文件和文件夹,并使用 npm link 链接依赖项和 webpack 来捆绑文件,但我总是遇到找不到文件的问题:
error TS2307: Cannot find module 'framework/interfaces/IComponent'
Run Code Online (Sandbox Code Playgroud)
和
Module not found: Error: Cannot resolve 'file' or 'directory' ./components/test
Run Code Online (Sandbox Code Playgroud)
TL;DRdeclaration: true使用in生成模块声明,并在文件条目tsconfig.json中为生成的类型指定文件typingspackage.json
使用tsconfig与此类似的文件:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": true,
"noImplicitAny": true,
"removeComments": true,
"outDir": "dist",
...
},
"files": [
...
]
}
Run Code Online (Sandbox Code Playgroud)
重要的一点是declaration: true它将在 dist 目录中生成内部声明
假设有一个index.ts文件(重新)导出 的所有有趣部分framework,创建一个package.json文件,其中 amain和typings条目分别指向生成的 js 和生成的声明,即
{
"name": "framework",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
...
}
Run Code Online (Sandbox Code Playgroud)
将此模块提交到 git 存储库,例如 bitbucket:“ https://myUser@bitbucket.org/myUser/framework.git ”
创建package.json依赖关系framework
{
"dependencies": {
"framework": "https://myUser@bitbucket.org/myUser/framework.git"
},
}
Run Code Online (Sandbox Code Playgroud)
这就对了。
import * from 'framework'
Run Code Online (Sandbox Code Playgroud)
将自动提取与类型的依赖关系
显然,可以使用dep-a完成框架所做的事情,即生成声明、更新 package.json 并使用dep-a作为在main中嵌入类型的模块
注意:如果您不想通过外部 git 存储库访问,则可以在 package.json/dependencies 中添加文件 URL
| 归档时间: |
|
| 查看次数: |
3324 次 |
| 最近记录: |