【发布时间】:2015-11-20 05:17:39
【问题描述】:
让我们玩两个项目:main-project 和 lib-project 它们都是用 typescript 编写的,然后使用 gulp 编译到普通的javascript。
我们的目标是在 main-project 中需要 lib-project。
lib-project
|-- package.json
|-- gulpfile.js
|-- dist
|-- index.js
|-- a.js
| src
|-- index.ts
|-- a.ts
我们已经创建了那些从 ts 编译它们的 js;让我们快速看一下它们(我们有索引,因为我们最终会想要这么多出口)
index.ts
import a = require('./a');
module.exports = {A: a.A};
a.ts
export class A {
field: string;
constructor(aField: string) {this.field = aField;}
toString() : string {return `A: ${this.field}`;}
}
index.js
var a = require('./a');
module.exports = { A: a.A };
a.js
var A = (function () {
function A(aField) {
this.field = aField;
}
A.prototype.toString = function () {
return "A: " + this.field;
};
return A;
})();
exports.A = A;
这就是介绍;现在,我将它推送到 git repo 并要求它作为 package.json 中的 dependency 并运行 npm install,我们的 main-project 是:
主项目
|-- package.json
|-- gulpfile.js
|-- node_modules
|--lib-project
|-- dist
|-- index.js
|-- a.js
|--node
|...
|--src
|--app.ts
在 app.ts 中失败:cannot find module lib-project
app.ts
import a = require('lib-project');
var foo = new a.A('HELLO');
console.log(foo.toString());
我尝试了什么?
- 将 lib-project 的 index.js 移至根文件夹
- 在package.json中,设置字段
"main": "dist/index.js" import a = require('node_modules/lib-project/dist/index');import a = require('../node_modules/lib-project/dist/index');- 多个版本的 tsc(打字稿编译器)
任何帮助表示赞赏:)
编辑
package.json
{
"name": "lib-project",
"version": "0.1.0",
"description": "description here",
"main": "dist/index.js",
"scripts": {},
"author": "",
"license": "MIT",
"dependencies": {
}
}
【问题讨论】:
-
你也可以在
package.json中粘贴lib-project
标签: javascript node.js npm typescript