带有SystemJS的打字稿:找不到自己的模块
Typescript with SystemJS: Cannot find own module
我开发了一个模块,现在我想将该模块从应用程序中取出并放入 node_modules。但是出现错误error TS2307: Cannot find module 'bipartite-graph'.
where bipartite-graph
is my own module.
这是我的 systemjs.config.ts
:
SystemJS.config({
packages: {
app: {
main: './app.js',
defaultExtension: 'js'
},
'bipartite-graph': {
main: './bipartite-graph.js',
defaultExtension: 'js'
},
'rxjs': {
defaultExtension: 'js'
}
},
map: {
app: 'app',
'rxjs': 'node_modules/rxjs',
'bipartite-graph': 'app/bipartite-graph'
}
});
这是 app.ts
:
import { Subject } from 'rxjs/Subject';
import BipartiteGraph from 'bipartite-graph';
let subject: Subject<boolean> = new Subject<boolean>();
let bg = new BipartiteGraph([35, 50, 40], [45, 20, 30, 30], [[8, 6, 10, 9], [9, 12, 13, 7], [14, 9, 16, 5]]);
const n = 3, m = 4;
let i = 1, j = 1;
while (i <= n && j <= m) {
bg.setAmount(i, j, Math.min(bg.getCapacity(i), bg.getDemand(j)));
bg.setCapacity(i, bg.getCapacity(i) - bg.getAmount(i, j)); bg.setDemand(j, bg.getDemand(j) - bg.getAmount(i, j));
if (bg.getCapacity(i) === 0) {
i = i + 1;
} else {
j = j + 1;
}
}
bg.draw();
项目转译,最终应用程序正常运行,但 Webstorm 和 tsc 抛出错误。我导入 rxjs
进行比较,但我找不到关键的区别。我错过了什么?我试图将模块放入 node_modules
并更改 systemjs.config.ts
中的路径,但没有帮助。整个项目可以在 project.
上找到
typescript 编译器找不到您的 bipartite-graph
模块,因为它没有读取您的 systemJS 配置。您必须添加一个 tsconfig.json
文件(如果还没有的话),并设置 baseUrl 和路径选项。
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"bipartite-graph": ["app/bipartite-graph"],
...other path mappings
}
}
}
关于这个主题的更多信息可以在官方文档中找到:https://www.typescriptlang.org/docs/handbook/module-resolution.html
我开发了一个模块,现在我想将该模块从应用程序中取出并放入 node_modules。但是出现错误error TS2307: Cannot find module 'bipartite-graph'.
where bipartite-graph
is my own module.
这是我的 systemjs.config.ts
:
SystemJS.config({
packages: {
app: {
main: './app.js',
defaultExtension: 'js'
},
'bipartite-graph': {
main: './bipartite-graph.js',
defaultExtension: 'js'
},
'rxjs': {
defaultExtension: 'js'
}
},
map: {
app: 'app',
'rxjs': 'node_modules/rxjs',
'bipartite-graph': 'app/bipartite-graph'
}
});
这是 app.ts
:
import { Subject } from 'rxjs/Subject';
import BipartiteGraph from 'bipartite-graph';
let subject: Subject<boolean> = new Subject<boolean>();
let bg = new BipartiteGraph([35, 50, 40], [45, 20, 30, 30], [[8, 6, 10, 9], [9, 12, 13, 7], [14, 9, 16, 5]]);
const n = 3, m = 4;
let i = 1, j = 1;
while (i <= n && j <= m) {
bg.setAmount(i, j, Math.min(bg.getCapacity(i), bg.getDemand(j)));
bg.setCapacity(i, bg.getCapacity(i) - bg.getAmount(i, j)); bg.setDemand(j, bg.getDemand(j) - bg.getAmount(i, j));
if (bg.getCapacity(i) === 0) {
i = i + 1;
} else {
j = j + 1;
}
}
bg.draw();
项目转译,最终应用程序正常运行,但 Webstorm 和 tsc 抛出错误。我导入 rxjs
进行比较,但我找不到关键的区别。我错过了什么?我试图将模块放入 node_modules
并更改 systemjs.config.ts
中的路径,但没有帮助。整个项目可以在 project.
typescript 编译器找不到您的 bipartite-graph
模块,因为它没有读取您的 systemJS 配置。您必须添加一个 tsconfig.json
文件(如果还没有的话),并设置 baseUrl 和路径选项。
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"bipartite-graph": ["app/bipartite-graph"],
...other path mappings
}
}
}
关于这个主题的更多信息可以在官方文档中找到:https://www.typescriptlang.org/docs/handbook/module-resolution.html