使用TypeScript对节点包进行本地更改
我很新的使用npm和TypeScript,所以我希望我失去了一些明显的东西。 我们编写了一个用TypeScript编写的节点包供我们自己内部使用。 所以,源码是用Typescript编写的,文件结构如下所示:
src/myModule.ts myModule.ts
myModule.ts如下所示:
export * from "./src/myModule";
然后运行tsc
生成.js和.d.ts文件。 所以,这些文件看起来像这样:
src/myModule.js src/myModule.ts src/myModule.d.ts myModule.js myModule.ts myModule.d.ts
所有这一切都推到混帐,然后我们的主要应用程序包括这个包作为依赖通过git的URL。 当我第一次尝试这个时,我得到了这样一个错误:
export * from "./src/myModule"; ^ ParseError: 'import' and 'export' may appear only with 'sourceType: module'
经过一番search之后,我发现问题出在了被加载的.ts文件中,所以我在.npmignore
添加了以下.npmignore
:
*.ts !*.d.ts
这样做之后,它会带来节点包,没有任何问题。
我遇到的问题是,我希望能够在活动的开发过程中运行节点包的本地更改。 我希望能够在节点包中进行更改,然后让主应用程序获取这些更改,以便在推送到git之前确保所有内容一起工作。 我发现的一切都说使用npm link
。 这使得它指向我的本地目录按预期,但问题是,它现在有所有.ts文件,并出现相同的错误。
我确信当所有的东西都用JavaScript编写的时候, npm link
工作的很好,但是我们使用TypeScript来写所有东西。 有没有办法使这与TypeScript的工作?
这使得它指向我的本地目录按预期,但问题是,它现在有所有.ts文件,并出现相同的错误。
这些错误只会显示,如果你有.ts
文件和这些文件的单独声明 。
build议修复
只需使用单独的 .ts
/ .js
/ .d.ts
文件,避免捆绑单个.d.ts
。
- Node.js process.stdin问题typescript(tty.ReadStream vs ReadableStream)
- asynchronous摩卡testing(与Chai断言库)应该失败,但被标记为通过
- TypeOrm – OneToOne连接更新尝试删除相关logging
- 错误TS2307:无法find模块“应用程序”
- 我们是否需要在bitbucket上推送node_modules
- 使用require()函数没有path
- 导入的打字稿对象不具有该属性
- 是否可以在同一个Typescript项目中混合使用AMD和CommonJS模块
- TypeScript – 使用<reference path =“…”>标记