You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript玩具项目从typings迁移至@types/npm遇模块找不到错误求助

Fixing "Cannot find module 'three'/'codemirror'" After Migrating from typings to @types

Hey there, sorry you're hitting these module errors post-migration—let's walk through the most common fixes for this issue with your TypeScript/Gulp/Browserify stack:

1. Double-check you installed the correct @types packages

First off, running npm install @types alone doesn't actually install any specific type definitions—you need to explicitly install the types for each dependency you're using. Run these commands in your project root:

npm install @types/three @types/codemirror --save-dev

This pulls the official TypeScript type definitions for Three.js and CodeMirror directly into your node_modules/@types folder, which is where TypeScript looks for them by default.

2. Verify your tsconfig.json configuration

Make sure your TypeScript config is set up to recognize the @types folder. Open your tsconfig.json and check these compiler options:

{
  "compilerOptions": {
    // Ensure TypeScript looks in node_modules/@types for type definitions
    "typeRoots": ["./node_modules/@types"],
    // Optional: Explicitly list the types you need if auto-detection isn't working
    "types": ["three", "codemirror"],
    // Also confirm module resolution is set correctly (Node is standard for Browserify setups)
    "moduleResolution": "Node"
  }
}

If you had custom typings paths before, make sure those are removed now that you're using @types.

3. Update your import statements

Older typings sometimes allowed looser import syntax, but @types follow strict ES module conventions. Make sure your imports look like this:

// For Three.js
import * as THREE from 'three';

// For CodeMirror
import * as CodeMirror from 'codemirror';

Avoid relative paths or non-standard imports here—TypeScript needs to map these to the @types packages correctly.

4. Clear cache and rebuild from scratch

Sometimes old build cache can cause weird type resolution issues. Run these steps to reset:

  • Clean the TypeScript build cache: npx tsc --clean
  • Delete your dist (or build) folder manually if it exists
  • Restart your Gulp build process

5. Check your Browserify/tsify setup

Since you're using Browserify, make sure your Gulp task is using tsify (the TypeScript plugin for Browserify) and that it's referencing your updated tsconfig.json. A basic setup might look like this:

const browserify = require('browserify');
const tsify = require('tsify');
const gulp = require('gulp');
const source = require('vinyl-source-stream');

gulp.task('bundle', () => {
  return browserify('src/main.ts')
    .plugin(tsify, { project: './tsconfig.json' }) // Ensure this points to your tsconfig
    .bundle()
    .pipe(source('bundle.js'))
    .pipe(gulp.dest('dist'));
});

This ensures Browserify uses your TypeScript config to resolve types correctly during bundling.

If you've tried all these steps and still run into issues, double-check that your package.json has the @types entries listed under devDependencies, and that there are no conflicting old typings files lingering in your project (like in a typings folder you might have forgotten to delete).

内容的提问来源于stack exchange,提问作者a nonyme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:45:55