I'm trying to get TypeScript 3's project references working but struggling to import a function from a referenced project.
I have a ProjectA that references Shared. Here's the file structure:
ProjectA
|_ src
| |_person.ts
|_ tsconfig.json
|
Shared
|_ src
|_utils.ts
|_ tsconfig.json
Here's utils.ts:
export function guid() {
return "a guid";
}
Here's Shared/tsconfig.json:
{
"compilerOptions": {
"composite": true,
"declaration": true,
"target": "es5",
"outDir": "dist",
"module": "es6",
"moduleResolution": "node",
"sourceMap": true,
"noImplicitReturns": true,
"noImplicitAny": true
},
"include": ["src/**/*"]
}
Here's ProjectA/tsconfig.json:
{
"compilerOptions": {
"composite": true,
"declaration": true,
"target": "es5",
"outDir": "dist",
"module": "es6",
"moduleResolution": "node",
"sourceMap": true,
"noImplicitReturns": true,
"noImplicitAny": true
},
"include": ["src/**/*"],
"references": [{ "path": "../shared" }]
}
Here's the problem file - person.ts:
import { guid } from "../../Shared";
class Person {
id: string;
name: string;
constructor() {
this.id = guid();
}
}
The TS compiler errors with "Cannot find module '../../Shared'"
What am I doing wrong when trying to import the guid function? Any help would be appreciated
To solve the cannot find module 'typescript' error, make sure to install typescript globally by running the npm i -g typescript command and create a symbolic link from the globally-installed package to node_modules by running the npm link typescript command. Copied!
The "Cannot find module or its corresponding type declarations" error occurs when TypeScript cannot locate a third-party or local module in our project. To solve the error, make sure to install the module and try setting moduleResolution to node in your tsconfig. json file.
Project references are a new feature in TypeScript 3.0 that allow you to structure your TypeScript programs into smaller pieces. By doing this, you can greatly improve build times, enforce logical separation between components, and organize your code in new and better ways.
To solve the error "Cannot find module '@angular/core'", make sure you have installed all dependencies by running the npm install command, set the baseUrl option to src in your tsconfig. json file and restart your IDE and development server. Copied!
You need to use the full relative path to the file you are importing from, just as you would if the file were in the same project:
import { guid } from "../../Shared/src/utils";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With