Definitelytyped: لا يمكن العثور على الوحدة النمطية "csstype"

تم إنشاؤها على ٧ أبريل ٢٠١٨  ·  21تعليقات  ·  مصدر: DefinitelyTyped/DefinitelyTyped

مرحبًا ، أحاول استخدام التفاعل مع الكتابة المطبوعة ، لقد قمت بتثبيت ( 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"


(تحرير بواسطة Orta: إذا كنت ترى هذا داخل DefinitelyTyped ، فأنت بحاجة إلى تشغيل npm install في التبعية حيث ترى هذا الخطأ. على سبيل المثال ، cd types/react; npm install ومن ثم يجب أن تكون القائمة أفضل - راجع https: //github.com/microsoft/dtslint/issues/226)

ال 21 كومينتر

جرب compilerOptions.moduleResolution: "node"


(تحرير بواسطة Orta: إذا كنت ترى هذا داخل DefinitelyTyped ، فأنت بحاجة إلى تشغيل npm install في التبعية حيث ترى هذا الخطأ. على سبيل المثال ، cd types/react; npm install ومن ثم يجب أن تكون القائمة أفضل - راجع https: //github.com/microsoft/dtslint/issues/226)

كان لدي هذا الخطأ أيضا.

يعطيني moduleResolution: true أخطاء - ولم يتم إدراجه في المستندات كقيمة صالحة - ولكن يبدو أن تعيين moduleResolution: "node" قد أنجز المهمة 👍 شكرًا!

آسف ، قصدت أن أقول "node" 😆 غيرت تعليقي. سعيد لأنه ساعد.

تعيين "moduleResolution": "node" مفيد بالنسبة لي أيضًا.

شكرا Frenic. يعمل بالنسبة لي كذلك.

يمكن لأي شخص أن يقدم اللون على لماذا؟ هل هناك تحديث يجعل هذا الإعداد غير ضروري؟

إذا كان compilerOptions.module === "AMD" or "System" or "ES6" الافتراضي لـ compilerOptions.moduleResolution سيكون "Classic" ، وإلا فسيكون "Node" . لذلك إذا كنت تستخدم إحدى استراتيجيات الوحدة هذه ، ولكن لديك كل حزمك أقل من node_modules . يجب تعيين compilerOptions.moduleResolution على "Node" .

مقابل Classic :

ومع ذلك ، بالنسبة لاستيراد الوحدة النمطية غير النسبية ، يتقدم المترجم في شجرة الدليل بدءًا من الدليل الذي يحتوي على الملف المستورد ، في محاولة لتحديد موقع ملف تعريف مطابق.

مقابل Node :

ستبحث Node عن الوحدات النمطية الخاصة بك في مجلدات خاصة تسمى node_modules. يمكن أن يكون مجلد node_modules على نفس مستوى الملف الحالي ، أو أعلى في سلسلة الدليل. سوف تتقدم العقدة في سلسلة الدليل ، وتبحث في كل node_modules حتى تعثر على الوحدة التي حاولت تحميلها.

( المصدر )

أصلح "module": "commonjs" هذه المشكلة ، جربها.

بالنسبة لأولئك الذين يستخدمون دقة الوحدة النمطية classic والذين _ لا يريدون_ التغيير إلى دقة الوحدة النمطية node ، تمكنت من التغلب على هذه المشكلة عن طريق إضافة إدخال paths مقابل csstype في tsconfig.json ، نظرًا لأن مشروعي يستخدم خيار التكوين baseUrl . راجع وثائق baseUrl لمزيد من التفاصيل.

من الواضح أن هذا ليس نهجًا قابلاً للتوسع إذا كان لديك العديد من التعارضات مثل هذا ، ولكن هذا كان أول ما قمنا به وقد وفر لنا هذا بعض الوقت على الأقل إذا أردنا التفكير في التبديل إلى دقة الوحدة النمطية node .

كنت أواجه هذا أيضًا.

عبر WebPack + TypeScript

Module not found: Error: Can't resolve 'csstype' 

ما تم إصلاحه بالنسبة لي ، والذي من المحتمل أن يكون اختراقًا رائعًا ، ولكن اعتبارًا من TS 2.9 يمكنك import() أنواع (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 بالفعل كـ "عقدة" عندما أنشأت المشروع باستخدام إنشاء-تفاعل- تطبيق-typecript ولكن ما زلت أرى المشكلة.

سأستمر في التحقق ولكن سأكون رائعًا إذا كان شخص ما يعرف الإجابة بالفعل ويمكنه إخباري بكيفية إصلاحها :-)

تحديث: آسف ، هذا هو إعدادي السيئ - هناك وحدة 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 لمعالجة هذا:

https://github.com/Microsoft/dtslint/issues/226

بالنسبة لي ، لم يعمل إعداد المعلمة moduleResolution ، لذلك قمت يدويًا بتنفيذ الحل الذي اقترحه @ mike-marcacci بالفعل في العلاقات العامة التي قام بجمعها

cd types/react
npm i

@ راهول - ساجور أحصل على نفس الخطأ مثلك. هل سبق لك أن اكتشفت كيفية حل هذا؟

تضمين التغريدة

@ راهول - ساجور أحصل على نفس الخطأ مثلك. هل سبق لك أن اكتشفت كيفية حل هذا؟

يجب عليك تثبيت تبعيات types/react وسيعمل ذلك :)

كما هو موضح في هذا الرد https://github.com/DefinitelyTyped/DefinitelyTyped/issues/24788#issuecomment -495861835

ولدي أيضا هذه المسألة.

  1. تعيين "moduleResolution": "node", أعطني الخطأ Error: Unexpected compiler option moduleResolution
  2. لقد حاولت
    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

حلها عن طريق كتابة "عقدة" بحرف "N" كبير:

"moduleResolution": "Node"

يعمل من جانبنا.

https://www.typescriptlang.org/docs/handbook/compiler-options.html

لم يعمل الحل "moduleResolution": "Node" حل المشكلة ، ولكن الانتقال إلى الدليل /types/react وتشغيل npm install حل المشكلة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات