编译打字稿项目作为本地模块
TL;博士
我能有打字稿编译不同的文件夹作为单独的库,并导入结果就像一个节点模块?编译打字稿项目作为本地模块
例如,我有一个common
文件夹800页的文件,然后几个app
文件夹(app1
,app2
等)各自具有20个+/-文件。所有app
文件夹都引用common
文件夹中的classes/interfaces/etc。问题是,每当我编译一个app
文件夹时,它也编译所有800个common
文件。这个汇编时间太长,我真的很想避免它。
我已经在common
和app1
中使用tsc --diagnostics --listFiles
进行了测试和确认。
我试过使用exclude
属性tsconfig.json
来忽略common
文件夹,但它似乎没有效果。我也尝试了,paths
等compilerSettings
内的多种配置,但无济于事。
noResolve
似乎几乎可以实现我在找的东西,但是安全吗?
有没有办法将它们分开编译并避免重新编译独立的common
项目?
技术堆栈:
- 角2.0.1
- SystemJS 0.19.39
- 打字稿2.0.3
- 的Windows 8.1
- ASP.NET MVC6
独立您共同文件夹到一个不同的项目通话common
,并使其成为一个Node.js的模块,指令位置:
https://docs.npmjs.com/getting-started/creating-node-modules
然后在你原来的项目,你就以下:
方法1
npm link <folder path of common>
方法2
npm install <folder path of common> --save
方法1更容易使用,因为更新到common
会自动反映在主项目中,而不必担心更新。
如果您计划稍后将其作为独立npm软件包发布,方法2会很好。但是更新到common
需要在主项目中手动更新步骤。
在您的common
文件夹中,请确保您创建了.npmignore
文件。让说你common
项目具有以下结构:
.
├── index.d.ts
├── index.js
├── lib/ <--- compiled location
├── node_modules
├── package.json
├── src/
├── tsconfig.json
├── typings
└── typings.json
那么你.npmignore
应该看起来像以下:
.DS_Store
.git
.gitignore
examples
node_modules
npm-debug.log
src
tsconfig.json
typings
typings.json
您可以检查出我的ng2-simple-mq作为一个例子。
我不知道这是否真的能解决我的问题。我可以把整件事情都捆绑起来,只是这样做效率低下。我想看看香草Typescript编译器是否可以将“项目”编译为本地模块。 – JimmyBoh
@JimmyBoh其实有一个更简单的方法。 –
@JimmyBoh已更新。 –