2017-10-18 73 views
0

我只是试图导入一个简单的空白导出类。我不知道为什么它找不到该文件,因为它与导入它的类位于相同的目录中。我搜索谷歌的类似的错误代码,但没有解决方案为我工作,它是一个相对简单的问题,所以我很困惑。导入空类时出错,错误TS2307:找不到模块“菜单”

错误:

error TS2307: Cannot find module 'menu' 

文件夹结构:

node_modules/ 
src/ 
    entry.tsx 
    menu.tsx 
index.html 
package-lock.json 
package.json 
tsconfig.json 
webpack.config.js 

entry.tsx

import menu from 'menu'; 

menu.tsx

export default class menu { } 

webpack.config

var path = require('path'); 
var webpack = require('webpack'); 
var ExtractTextPlugin = require("extract-text-webpack-plugin"); 
var HtmlWebpackPlugin = require('html-webpack-plugin'); 

module.exports = { 
    entry: './src/js/entry.tsx', 
    output: { 
    path: path.resolve(__dirname, 'dist'), 
    filename: 'bundle.js' 
    }, 
    module: { 
    rules: [ 
     { 
     test: /\.css$/, 
     loader: ExtractTextPlugin.extract({ 
      fallback: 'style-loader', 
      use: [ 'css-loader' ] 
     }) 
     }, 
     { 
     test: /\.tsx?$/, 
     loader: 'ts-loader', 
     exclude: /node_modules/ 
     } 
    ] 
    }, 
    plugins: [ 
    new ExtractTextPlugin({ 
      filename: "bundle.css" 
     }), 
    new HtmlWebpackPlugin({ 
     title: 'Custom template', 
     template: 'index.html' 
    }) 
    ] 
}; 

的package.json

{ 
    "name": "helloworld", 
    "version": "1.0.0", 
    "description": "Hello there", 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "build": "webpack-dev-server", 
    "build:prod": "webpack -p" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "babel-core": "^6.26.0", 
    "babel-loader": "^7.1.2", 
    "babel-preset-env": "^1.6.0", 
    "babel-preset-react": "^6.24.1", 
    "css-loader": "^0.28.7", 
    "extract-text-webpack-plugin": "^3.0.1", 
    "html-webpack-plugin": "^2.30.1", 
    "react": "^16.0.0", 
    "react-dom": "^16.0.0", 
    "style-loader": "^0.19.0", 
    "ts-loader": "^2.3.7", 
    "typescript": "^2.5.3", 
    "webpack": "^3.7.1", 
    "webpack-dev-server": "^2.9.1" 
    }, 
    "dependencies": { 
    "@types/react": "^16.0.13", 
    "react": "^16.0.0", 
    "react-dom": "^16.0.0" 
    } 
} 

回答

4

我想的WebPack尝试加载节点程序包,如果你不包括在“包括”线的相对路径。

尝试entry.tsx改变这一行:

import menu from 'menu';

要这样:

import menu from './menu';

+0

是的,这是正确的。如果你没有声明相对路径,它会认为'import'是一个单独的模块。 –

+0

感谢它的工作!所以,如果我说'菜单',它看起来在node_modules文件夹呢? – user1337604

+1

@ user1337604正确。 –

相关问题