ΠΡΠΈΠ²Π΅Ρ, Ρ ΠΏΡΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π°ΠΊΡΠΈΡ Ρ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ, Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ( react
, react-dom
), ( @types/react
, @types/react-dom
) ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ ERROR in [at-loader] ./node_modules/@types/react/index.d.ts:55:22
Cannot find module 'csstype'
. Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» npm i csstype
Π² @types/react
ΠΈ Π² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π’Π°ΠΊΠΆΠ΅, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ, Π² ΠΌΠΎΠ΄ΡΠ»Π΅ @types/react
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠ°ΠΏΠΊΠ° node_modules / csstype, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π½Π°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ°.
tsconfig.json
{
"compilerOptions": {
"outDir": "./build/", // path to output directory
"strictNullChecks": true, // enable strict null checks as a best practice
"module": "es6", // specify module code generation
"jsx": "react", // use typescript to transpile jsx to js
"target": "es5", // specify ECMAScript target version
"allowJs": true, // allow a partial TypeScript and JavaScript codebase
"noImplicitAny": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
},
"exclude": [
"node_modules"
],
"include": [
"./source/**/*.tsx",
"./source/**/*.ts"
]
}
package.json
{
"name": "suggestion-app",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"webpack:server": "babel-node node_modules/.bin/webpack-dev-server --mode=development"
},
"dependencies": {
"react": "^16.3.1",
"react-dom": "^16.3.1"
},
"devDependencies": {
"@types/react": "^16.3.5",
"@types/react-dom": "^16.0.4",
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.6.1",
"babel-preset-stage-3": "^6.24.1",
"caniuse-lite": "^1.0.30000697",
"clean-webpack-plugin": "^0.1.19",
"css-loader": "^0.28.11",
"eslint": "^4.19.1",
"eslint-config-airbnb": "^16.1.0",
"eslint-plugin-import": "^2.10.0",
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-react": "^7.7.0",
"file-loader": "^1.1.11",
"glob": "^7.1.2",
"html-webpack-plugin": "^3.2.0",
"mini-css-extract-plugin": "^0.4.0",
"postcss-cssnext": "^3.1.0",
"postcss-loader": "^2.1.3",
"purify-css": "^1.2.5",
"purifycss-webpack": "^0.7.0",
"script-ext-html-webpack-plugin": "^2.0.1",
"webpack": "^4.5.0",
"webpack-cli": "^2.0.14",
"webpack-dev-server": "^3.1.1"
}
}
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ / index.ts
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import './styles/main.css';
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('root')
);
ΠΠ‘: Ubuntu 17.10
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ compilerOptions.moduleResolution: "node"
(ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΡΡΠΎΠΉ: Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎ Π²Π½ΡΡΡΠΈ DefinentyTyped, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ npm install
Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π³Π΄Π΅ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, cd types/react; npm install
ΠΈ ΡΠΎΠ³Π΄Π° ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π»ΡΡΡΠ΅ - ΡΠΌ. Https: //github.com/microsoft/dtslint/issues/226)
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ Π±ΡΠ»Π° ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ°.
moduleResolution: true
Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ - ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ - Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° moduleResolution: "node"
Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π° ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ π Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Ρ Ρ
ΠΎΡΠ΅Π» ΡΠΊΠ°Π·Π°ΡΡ "node"
π ΠΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. Π Π°Π΄, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³.
Set "moduleResolution": "node"
ΠΌΠ½Π΅ ΡΠΎΠΆΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π€ΡΠ΅Π½ΠΈΠΊ. Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ? ΠΡΡΡ Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΎ Π±Ρ ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π½Π΅Π½ΡΠΆΠ½ΠΎΠΉ?
ΠΡΠ»ΠΈ compilerOptions.module === "AMD" or "System" or "ES6"
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ compilerOptions.moduleResolution
Π±ΡΠ΄Π΅Ρ "Classic"
, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ "Node"
. ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠΈΡ
ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ
ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ, Π½ΠΎ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΠΏΠΎΠ΄ node_modules
. compilerOptions.moduleResolution
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° "Node"
.
ΠΠ»Ρ Classic
:
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΏΡΡΠ°ΡΡΡ Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΠ»Ρ Node
:
Node Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ Π²Π°ΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΠ°Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ node_modules. ΠΠ°ΠΏΠΊΠ° node_modules ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΡΠΎΠ²Π½Π΅, ΡΡΠΎ ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°ΠΉΠ», ΠΈΠ»ΠΈ Π²ΡΡΠ΅ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ². Node Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ node_modules, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΡΡΠ°Π»ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ.
( ΠΈΡΡΠΎΡΠ½ΠΈΠΊ )
"module": "commonjs"
ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΠΌΠ΅Π½Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅.
ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ classic
_Π½Π΅_ Ρ
ΠΎΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΡ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ node
, Ρ ΡΠΌΠΎΠ³ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π·Π°ΠΏΠΈΡΡ paths
Π΄Π»Ρ csstype
Π² ΠΌΠΎΠ΅ΠΌ tsconfig.json
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ baseUrl
. Π‘ΠΌ. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², Π½ΠΎ ΡΡΠΎ Π±ΡΠ» Π½Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π²ΡΠΈΠ³ΡΠ°Π» Π½Π°ΠΌ Π²ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ node
.
Π― ΡΠΎΠΆΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΈΠΌ.
Π§Π΅ΡΠ΅Π· WebPack + TypeScript
Module not found: Error: Can't resolve 'csstype'
Π§ΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ, ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Ρ
Π°ΠΊΠ΅ΡΡΠΊΠΎΠ΅, Π½ΠΎ Ρ TS 2.9 Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ import()
types (https://blogs.msdn.microsoft.com/typescript/2018/05/31/announcing-typescript -2-9 / # import-types), ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΄Π΅Π»Π°Π» ΡΡΠΎ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΆΠ°Π»ΠΎΠ±:
type VisibilityProperty = import('csstype').VisibilityProperty;
type AnimationProperty = import('csstype').AnimationProperty;
ΠΡΠΈΠ²Π΅Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π΄Π΅ΡΡ compilerOptions.moduleResolution: "node"
.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, moduleResolution ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ Β«ΡΠ·Π΅Π»Β», ΠΊΠΎΠ³Π΄Π° Ρ ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ create-react-app-typescript, Π½ΠΎ Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠΆΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π― Π±ΡΠ΄Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΊΡΠΎ-ΡΠΎ ΡΠΆΠ΅ Π·Π½Π°Π» ΠΎΡΠ²Π΅Ρ ΠΈ ΠΌΠΎΠ³ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠ½Π΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ :-)
ΠΠΠΠΠΠΠΠΠΠ: ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΌΠΎΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° - Π΅ΡΡΡ tsconfig.test.json
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ commonjs
ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ "moduleResolution": "node"
ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΅Π³ΠΎ.
Π― ΠΏΡΠΎΠ²Π΅ΡΡΡ types/react-tag-autocomplete
ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Ρ npm run lint react-tag-autocomplete
. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, error TS2307: Cannot find module 'csstype'
.
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ "moduleResolution": "node",
Π² compilerOptions
ΠΈΠ· react-tag-complete
tsconfig.json
ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°: Error: Unexpected compiler option moduleResolution
.
ΠΡΠ±Π°Ρ ΠΏΠΎΠΌΠΎΡΡ?
ΠΡΠΎ ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΌΠ΅Π½Ρ Ρ ΡΠΌΠ°, ΠΏΡΡΠ°ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π²ΠΈΡΠ΅Π»ΠΎ Π±Ρ ΠΎΡ ΡΠ΅Π°ΠΊΡΠΈΠΈ. ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° csstype
ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ TS, ΠΊΠΎΡΠΎΡΡΠ΅, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /types
ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎ. Π― ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² dtslint, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° moduleResolution
Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»Π°, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π²ΡΡΡΠ½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ @ mike-marcacci ΡΠΆΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π½Π° PR, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΠΏΠΎΠ΄Π½ΡΠ» Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
cd types/react
npm i
@ Π Π°Ρ ΡΠ»-Π‘Π°Π³ΠΎΡ. Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠ°ΠΊ ΠΈ Ρ Π²Π°Ρ. ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
@mcmar ΠΠ΅Ρ.
@ Π Π°Ρ ΡΠ»-Π‘Π°Π³ΠΎΡ. Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠ°ΠΊ ΠΈ Ρ Π²Π°Ρ. ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ types/react
ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ :)
ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ΅ https://github.com/DefinitiTyped/DefinitiTyped/issues/24788#issuecomment -495861835
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
"moduleResolution": "node",
Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Error: Unexpected compiler option moduleResolution
cd types\react
npm i
ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊ npm run lint <my-package>
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠ½Π΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Ρ csstype
Π²ΡΠΎΠ΄Π΅
../react/node_modules/csstype/index.d.ts(2071,31): error TS1005: '(' expected.
../react/node_modules/csstype/index.d.ts(2083,19): error TS2693: 'LetterSpacingProperty' only refers to a type, but is being used as a value here.
../react/node_modules/csstype/index.d.ts(2083,49): error TS1005: '(' expected.
../react/node_modules/csstype/index.d.ts(2096,15): error TS2693: 'LineBreakProperty' only refers to a type, but is being used as a value here.
Π Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π½ ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΡΡΡΠΎΠΊ
Π’Π° ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°, ΡΡΠΎ ΠΈ @ fyodore82 ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π³ΠΎΠ² 1/2
Π Π΅ΡΠΈΡΠ΅ ΡΡΠΎ, Π½Π°ΠΏΠΈΡΠ°Π² Β«ΡΠ·Π΅Π»Β» Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΡΠΊΠ²Ρ:
"moduleResolution": "Node"
Π Π°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π½Π°ΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅.
https://www.typescriptlang.org/docs/handbook/compiler-options.html
Π Π΅ΡΠ΅Π½ΠΈΠ΅ "moduleResolution": "Node"
Π½Π΅ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΎ ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ, Π½ΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /types/react
ΠΈ Π·Π°ΠΏΡΡΠΊ npm install
ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅
compilerOptions.moduleResolution: "node"
(ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΡΡΠΎΠΉ: Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎ Π²Π½ΡΡΡΠΈ DefinentyTyped, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ
npm install
Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π³Π΄Π΅ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,cd types/react; npm install
ΠΈ ΡΠΎΠ³Π΄Π° ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π»ΡΡΡΠ΅ - ΡΠΌ. Https: //github.com/microsoft/dtslint/issues/226)