Webpack4 で React環境を整える(sassも)

Webpack4 で React環境を整える(sassも)

Webpack4 で React環境を整える(sassも)

Webpack4 で React環境を整える(sassも) へのコメントはまだありません

Webpack3で、開発するのに慣れていたんだが、知らぬ間にVer4のwebpackが出ている。
webpack4からは、コンフィグレスを目指しているみたいだけど、コンフィグも多少いるし、Ver3とは書き方がずいぶん替わっているので、軽くまとめておく。

webpack2

開発フォルダ作成

[bash]

cd ~/
mkdir workspace
mkdir wp4react
cd workspace/wp4react

npm init -y

mkdir dist src
mkdir src/components

[/bash]

開発用パッケージの導入

[bash]

npm i -D babel-core babel-loader babel-preset-env babel-preset-react
npm i -D webpack webpack-cli webpack-dev-server

[/bash]

必要パッケージの導入

[bash]

npm i -S react react-dom

[/bash]

package.jsonの調整

testだけになっているところに、buildとstart を追加。

これで、 npm run build/ npm run start が使えるようになる。

[bash]

“scripts”: {
“test”: “echo \”Error: no test specified\” && exit 1″,
“build”: “webpack”,
“start”: “webpack-dev-server –history-api-fallback”
},

[/bash]

webpack.config.jsの調整

ルートフォルダにwebpack.config.jsファイルを作成します。
ここで、reactが動作するための最低限の設定を書きます。
(結局、設定ファイルいるじゃん、、、というのはさておき。)

CSSやSCSSを読みこんだり、画像ファイルを読み込むところはまだ、調べていないのであしからず。

[bash]

module.exports = {
mode: ‘development’,
entry: ‘./src/main.js’,
output: {
path: `${__dirname}/dist`,
filename: ‘main.js’
},
module: {
rules: [
{
test: /\.js$/,
use: [
{
loader: ‘babel-loader’,
options: {
presets: [
[‘env’, {‘modules’: false}],
‘react’
]
}
}
],
exclude: /node_modules/,
}
]
},

devServer: {
contentBase: “dist”,
open: true
}
};

[/bash]

Reactの極小アプリを作る

wp4react/src/main.js

[bash]

import React from “react”
import ReactDOM from “react-dom”
import HelloComp from “./components/HelloComp”

document.write(“

“)

ReactDOM.render (
,
document.getElementById(“root”)
)

[/bash]

wp4react/src/components/HelloComp.js

[bash]

import React from “react”

class HelloComp extends React.Component {
render () {
return (

Hello world!!

)
}
}

export default HelloComp

[/bash]

wp4react/dist/index.html

[bash]





react wp4 test



[/bash]

動作検証

http://localhost:8080がブラウザーで起動します。

[bash]

npm run start

[/bash]

Sassファイルもインクルード

sassも一緒に開発するのが普通なので、そのために必要な処理を列記しておきます。

開発用パッケージの導入

[bash]

npm i -D sass-loader node-sass style-loader css-loader

[/bash]

[bash]

cd ~/workspace/wp4react/src
mkdir sass

[/bash]

Sassのサンプルコード挿入

wp4react/src/sass/common.scss

[bash]

@import ‘./modules/first.scss’;

[/bash]

wp4react/src/sass/modules/first.scss

[bash]
.hello_sass {
font-size: 20px;
color: #8372ff;
}

[/bash]

webpack.config.jsで sassを読み込めるように

[bash]

const MODE = ‘development’
const enableSourceMap = (MODE === ‘development’)

module.exports = {
mode: MODE,
entry: ‘./src/main.js’,
output: {
path: `${__dirname}/dist`,
filename: ‘main.js’
},
module: {
rules: [
{
test: /\.js$/,
use: [
{
loader: ‘babel-loader’,
options: {
presets: [
[‘env’, {‘modules’: false}],
‘react’
]
}
}
],
exclude: /node_modules/,
},
{
test: /\.scss/,
use: [
‘style-loader’,
{
loader: ‘css-loader’,
options: {
url: false,
sourceMap: enableSourceMap,
importLoaders: 2
}
},
{
loader: ‘sass-loader’,
options: {
sourceMap: enableSourceMap,
}

}

]
}
]
},

devServer: {
contentBase: “dist”,
open: true
}
};

[/bash]

アプリにsass読み込みを追記

wp4react/src/main.js

[bash]

import React from “react”
import ReactDOM from “react-dom”
import HelloComp from “./components/HelloComp”

import “./sass/common.scss” ※※※※※ 追記 ※※※※

document.write(“

“)

ReactDOM.render (
,
document.getElementById(“root”)
)

[/bash]
以上。

次の記事で、Webpack4環境でReduxのTodoサンプルを動かすというのを
書いてみようと思います。

About the author:

Tags:

Related Posts

Leave a comment

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Back to Top