Я делаю проект машинописного текста и хочу установить базовый URL, чтобы я мог выполнять импорт с путями, относящимися к папке sr c. Моя структура папок выглядит следующим образом
src
-client
--index.html
--application.ts
-server
-shared
tsconfig
Когда я пытаюсь использовать базовый URL в своем индексе. html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Game</title>
</head>
<body>
<canvas id="game-canvas"></canvas>
<p>Client</p>
<script src="~/client/ts/index.ts"></script>
</body>
</html>
И запускаю следующий скрипт
"watch-client": "parcel ./src/client/index.html --open --out-dir ./builds/development/public",
Будет выдана следующая ошибка
Ошибка: ENOENT: нет такого файла или каталога, откройте 'D: \ Game \ src \ client \ client \ ts \ index.ts'
у него есть клиент несколько раз, почему это происходит? Это похоже на то, что из моего сценария компилируется сценарий ./ и это будет папка клиента. Так что это не будет проблемой, потому что я могу просто сделать ../, чтобы добраться до моей общей папки, поэтому я изменил скрипт в index. html на ~ / ts / index.ts, и это работает. Но index.ts импортирует приложение таким же образом, и это работает, когда я запускаю скомпилированную сборку в браузере. Так что это работает. Но теперь vscode выдает следующую ошибку:
, потому что vscode почему-то считает, что это должно быть ~ / client / ts / application.
Но это приводит к ошибке в командной строке при запуске сценария. Так как я могу решить эту ошибку в vscode? Лучше всего было бы, если бы путь был относительно моей папки sr c, но, честно говоря, я бы не знал, как заставить это работать. Это то, что говорят документы посылки
https://parceljs.org/typeScript.html#baseurl и пути
tsconfig. json
{
"compilerOptions": {
/* Basic Options */
"target": "ES6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"lib": ["DOM", "ES2018"], /* Specify library files to be included in the compilation. */
"allowJs": false, /* Allow javascript files to be compiled. */
"checkJs": false, /* Report errors in .js files. */
"sourceMap": true, /* Generates corresponding '.map' file. */
"removeComments": true, /* Do not emit comments to output. */
//"noEmit": false, /* Do not emit outputs. */
"declaration": true,
"baseUrl": "./src",
"paths": {
"~*": ["./*"]
},
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
"strictNullChecks": true, /* Enable strict null checks. */
"strictFunctionTypes": true, /* Enable strict checking of function types. */
"strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
"strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
"noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
"alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
"noUnusedLocals": true, /* Report errors on unused locals. */
"noUnusedParameters": true, /* Report errors on unused parameters. */
"noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
"noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
/* Module Resolution Options */
"moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
"typeRoots": ["node_modules/@types"], /* List of folders to include type definitions from. */
"esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
"forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */
"experimentalDecorators": true
},
"include": ["src/**/*"],
}