質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

1044閲覧

class型コンポーネントをexportしてもobjectとしてimportされる

shinyaigeek

総合スコア112

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

2クリップ

投稿2019/05/31 10:49

やりたいこと

Reactのcomponentをnpmにnode_moduleとして公開したいです。

##起きたこと
webpackで出来たものをbundleして、それをimportしてもobjectとしてimportされエラーが起きる。ローカルサーバーで建てたときはうまくimportできました。イメージ説明
出てくるエラーはこんな感じです。
エラーの内容を見てもどこがミスっててるのかがいまいちわかりません。
皆さんの知見をお貸しください。

##コード
index.tsx(bundleするComponent)

tsx

1import React from 'react' 2interface(以下略) 3export default class App extends React.Component<Props,State>{ 4 render(){ 5 return( 6 <div> 7 This is App 8 </div> 9 ) 10}

package.json

json

1{ 2 "name":"test-app", 3 (略) 4 "main":"lib/bundle.js", 5 "scripts":{ 6 "start":"webpack-dev-server --mode development", 7 "build":"webpack --mode production" 8 }, 9 (略) 10}

webpack.config.js

js

1const path = require('path'); 2 3module.exports = { 4 mode:"production", 5 entry: path.join(__dirname,"./App.tsx"), 6 module: { 7 rules: [ 8 { 9 test: /.ts(x?)$/, 10 loader: 'ts-loader', 11 exclude: /node_modules|lib/, 12 }, 13 { 14 test: /.js(x?)$/, 15 loader:'babel-loader', 16 exclude: /node_modules|lib/, 17 }, 18 { 19 test: /.scss$/, 20 use:["style-loader","css-loader","sass-loader"] 21 }, 22 { 23 test: /.css$/, 24 use:["style-loader","css-loader"] 25 } 26 ] 27 }, 28 resolve: { 29 modules: ["node_modules"], 30 extensions: ['.js','.jsx','.ts','.tsx'] 31 }, 32 output: { 33 path: path.join(__dirname,"./lib/"), 34 filename: "bundle.js" 35 } 36}

index.js(node_moduleをimportする側)

js

1import React from 'react' 2 3import App from 'test-app' 4 5interface() 6 7export default class Test extends React.Component <Props,State> { 8 render(){ 9 return( 10 <div> 11 <App /> 12 </div> 13 ) 14 } 15}

よろしくお願いします!!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teloo

2019/06/05 10:51 編集

以下について確認いただけますでしょうか? 1. test-app は index.js で呼び出す側の node_modules 下に npm build 後で存在するという認識で正しいでしょうか? 2. lib/bundle.js の内容はどのようになっているのでしょうか? 3. index.js の `render()` 内の return の前に `console.log(App);` すると、どのような出力がされるのでしょうか? 1 で、念のために前提条件を確認します。 2 の意図は、index.js が実際に import する対象は TypeScript を JavaScript に変えた後だからです。 3 の意図は、React の コンポーネントは関数かクラスを想定していたが、オブジェクトだったというエラーメッセージだと認識しています。 では、どのようなオブジェクトとなっていたのかをこれで把握したいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問