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

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

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

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

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

Q&A

1回答

1418閲覧

next.js webpckの設定

yyyooo34343

総合スコア79

Next.js

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

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

0グッド

0クリップ

投稿2020/06/03 07:31

編集2020/06/07 08:40

環境
・ typescript + react.js + next.jsを使っている

やりたいこと
next.jsの環境にwebpackの設定を適応させたい
next.config.jsというファイルを作り、そこにwebpackの設定を記入すればいけるらしいのですが下記のwebpackの設定をnext.config.jsにそのまま貼り付けたら適応されるのでしょうか?

// webpack.config.js const { resolve } = require('path'); const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const tsImportPluginFactory = require('ts-import-plugin'); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const Dotenv = require('dotenv-webpack'); module.exports = { mode: "development", context: resolve(__dirname, "src"), entry: [ "webpack-dev-server/client?http://localhost:8080", // bundle the client for webpack-dev-server // and connect to the provided endpoint "webpack/hot/only-dev-server", // bundle the client for hot reloading // only- means to only hot reload for successful updates "./index.tsx", // the entry point of our app ], output: { filename: "hotloader.js", // the output bundle path: resolve(__dirname, "dist"), publicPath: "/", // necessary for HMR to know where to load the hot update chunks }, devtool: "inline-source-map", resolve: { // Add '.ts' and '.tsx' as resolvable extensions. extensions: [".ts", ".tsx", ".js", ".json"], }, devServer: { port: "8080", // Change it if other port needs to be used hot: true, // enable HMR on the server noInfo: false, quiet: false, // minimize the output to terminal. contentBase: resolve(__dirname, "src"), // match the output path publicPath: "/", // match the output `publicPath` open: true, historyApiFallback: true }, module: { rules: [ { enforce: "pre", test: /.(ts|tsx)?$/, loader: "eslint-loader", exclude: [resolve(__dirname, "node_modules")], }, { test: /.(ts|tsx)?$/, use: [ { loader: "ts-loader", options: { transpileOnly: true, getCustomTransformers: () => ({ before: [ tsImportPluginFactory({ libraryName: "antd", libraryDirectory: "es", style: "css", }), ], }), compilerOptions: { module: "es2015", }, }, }, ], exclude: [resolve(__dirname, "node_modules")], }, { enforce: "pre", test: /.js$/, loader: "source-map-loader" }, { test: /.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { // only enable hot in development hmr: true, // if hmr does not work, this is a forceful method. reloadAll: true, }, }, "css-loader", ], }, { test: /.png$/, loader: "url-loader?limit=100000" }, { test: /.jpg$/, loader: "file-loader" }, { test: /.(woff|woff2)(?v=\d+.\d+.\d+)?$/, loader: "url-loader?limit=10000&mimetype=application/font-woff", }, { test: /.ttf(?v=\d+.\d+.\d+)?$/, loader: "url-loader?limit=10000&mimetype=application/octet-stream", }, { test: /.eot(?v=\d+.\d+.\d+)?$/, loader: "file-loader" }, { test: /.svg(?v=\d+.\d+.\d+)?$/, loader: "url-loader?limit=10000&mimetype=image/svg+xml", }, ], }, plugins: [ new MiniCssExtractPlugin({ filename: "style.css", chunkFilename: "[id].css", }), new webpack.HotModuleReplacementPlugin(), // enable HMR globally new webpack.NamedModulesPlugin(), // prints more readable module names in the browser console on HMR updates new HtmlWebpackPlugin({ template: resolve(__dirname, "src/index.html") }), // inject <script> in html file. new Dotenv() // dotenv settings ], };

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

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

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

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

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

guest

回答1

0

Next.jsでwebpackの設定を拡張する場合は、next.config.jsでexportする設定のwebpackプロパティで拡張していきます。

詳細はこちらのページをご確認ください。
https://nextjs.org/docs/api-reference/next.config.js/custom-webpack-config

投稿2020/08/12 08:26

kmtr

総合スコア213

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問