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

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

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

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

JavaScript

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

React.js

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

Q&A

解決済

1回答

4531閲覧

Next.js上で外部コンポーネントのビルドに失敗する

oregaU_MAda

総合スコア15

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

JavaScript

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

React.js

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

0グッド

0クリップ

投稿2020/01/12 05:21

前提・実現したいこと

  • Next.js上でのreact-calendarの動作

Next.js上でreact-calendarを動作させたいです。
ビルドの際に下記エラーメッセージが表示されます。

発生している問題・エラーメッセージ

❯ yarn build yarn run v1.21.1 $ next build Creating an optimized production build Failed to compile. ./node_modules/react-calendar/dist/Calendar.css 1:0 Module parse failed: Unexpected token (1:0) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders > .react-calendar { | width: 350px; | max-width: 100%; > Build error occurred Error: > Build failed because of webpack errors at build (~/myActivity/study/react/nextJS/react-calendar/node_modules/next/dist/build/index.js:10:900) at <anonymous> error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

該当のソースコード

json

1{ 2 "name": "react-calendar", 3 "version": "1.0.0", 4 "main": "index.js", 5 "license": "MIT", 6 "dependencies": { 7 "next": "^9.1.7", 8 "react": "^16.12.0", 9 "react-calendar": "^2.19.2", 10 "react-dom": "^16.12.0" 11 }, 12 "scripts": { 13 "dev": "next", 14 "build": "next build", 15 "start": "next start" 16 } 17}

js

1// next.config.js 2module.exports = { 3 transpileModules: ["react-calendar"] 4}; 5 6// pages/index.js 7import React, { useState } from "react"; 8import Calendar from "react-calendar"; 9 10const Index = () => { 11 [date, setDate] = useState(new Date()); 12 return ( 13 <div> 14 <Calendar onChange={setDate} value={date} /> 15 </div> 16 ); 17}; 18 19export default Index;

試したこと

node_moduleでNext.jsでのトランスパイルが実行されていないことが原因と考え、
こちらを参考にnext.config.jsの設定を追記した。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは、oregaU_MAdaさん

質問拝見しました。
実際、手元で試してみましたが、react-calendarのエントリーポイントの書き出し方がUsage通りに、なされてないような気がしますね。他のバージョンは試していませんが、react-calendar2.19.2では、以下のように読み出せば、動作しました。

json

1// package.json 2{ 3 "name": "next-react-cal", 4 "version": "1.0.0", 5 "description": "", 6 "main": "index.js", 7 "scripts": { 8 "dev": "next", 9 "build": "next build", 10 "start": "next start" 11 }, 12 "keywords": [], 13 "author": "", 14 "license": "ISC", 15 "dependencies": { 16 "@zeit/next-css": "^1.0.1", 17 "next": "^9.1.7", 18 "react": "^16.12.0", 19 "react-calendar": "^2.19.2", 20 "react-dom": "^16.12.0" 21 } 22}

javascript

1// next.config.js 2const withCSS = require('@zeit/next-css'); 3module.exports = withCSS();

javascript

1// pages/index.js 2import React, { useState } from 'react'; 3import 'react-calendar/dist/Calendar.css'; 4import Calendar from 'react-calendar/dist/Calendar'; 5 6const Index = () => { 7 const [date, setDate] = useState(new Date()); 8 9 return ( 10 <div> 11 <Calendar onChange={setDate} value={date} /> 12 </div> 13 ); 14}; 15 16export default Index;

JS内でCSSを展開するためにnext.config.jsにcss-loaderを追加しています。

以上、参考になれば幸いです。

投稿2020/01/12 06:24

gentamura

総合スコア406

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

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

oregaU_MAda

2020/01/12 15:14

上記手順でビルドできました! jsファイルで直接呼び出す必要があるのですね。 nextJSを用いない通常のreact環境では成功していたため、混乱していました。 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問