2017-10-18 26 views
0

単純な空のエクスポートされたクラスをインポートしようとしています。なぜそれがそれをインポートするクラスと同じディレクトリにあるので、ファイルを見つけることができないのかわかりません。私は同様のエラーコードのGoogle検索したが、解決策は私とかなり単純なので、非常に混乱して比較的単純な問題に働いていない。空のクラスをインポート中にエラーが発生しました。エラーTS2307:モジュール 'menu'が見つかりません。

エラー:

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 { } 
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.config私はWebPACKのはあなたのライン「を含む」の相対パスが含まれていない場合はノードパッケージをロードしようと思います。

はentry.tsxにこの行を変更してみてください:

これに

import menu from 'menu';

import menu from './menu';

+0

はい、これは正しいです。相対パスを宣言していない場合は、 'import'が別のモジュールであるとみなされます。 –

+0

ありがとうございました!だから、私は 'menu'と言うと、代わりにnode_modulesフォルダを探しますか? – user1337604

+1

@ user1337604修正します。 –

関連する問題