ポートフォリオを作り始めて無料で公開する(Webpack4使ってみた)
ポートフォリオを作り始めて無料で公開する(まずは形だけ)の続きです。
作りかけのポートフォリオ
静的Webサイトを作るのにWebpackを使った事が無かったのですが、今更ながら使ってみました。
SPA作る時にAngular CLIを一発叩くだけで勝手に付いてくる
お得なお便利ツールだと思ってたので、自分で使い方を探った事がなかったです。
そもそも、静的Webサイトを作る機会が無かった。。。
ちょうど数日前にwebpackバージョン4がリリースされたばかりみたいです。
こだわりは無いですが、インストールしたら自動的に最新バージョンになってたので、それでやります。
v4.0.0-beta.0の変更点
Webpackでやりたかった事
・ローカルでWebサーバ起動して動作確認
⇨ webpack-dev-serverを利用
・jsの統合
⇨ webpack.config.jsの'entry'と'output'オプションで定義
・scss→cssに変換
⇨ style-loader css-loaderを利用し、webpack.config.jsで変換設定
※参考:webpack 4入門:スタイルシートを取り込む方法
・htmlファイルをsrc→distにコピー
⇨ copy-webpack-pluginを利用
・変更を検知してリビルド
⇨ webpack-dev-serverが勝手にやってくれる
バージョン4の変更点を少しだけ使ってみた点
・modeオプション('development' or 'production')の指定で、開発環境の時だけソースマップを有効にする
まずはnpm install
npm i -D webpack webpack-cli webpack-dev-server style-loader css-loader --save
npm i copy-webpack-plugin --save
Webpack設定ファイルを作成
webpack.config.js
const CopyWebpackPlugin = require('copy-webpack-plugin')
module.exports = {
mode: 'development', // [v4から] development or production
entry: `./src/app/index.js`,
output: {
path: `${__dirname}/dist`,
filename: 'bundle.js'
},
module: {
rules: [
{
//SCSS⇨CSSへの変換設定
test: /\.scss/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
url: false,
sourceMap: true,
importLoaders: 2
},
},
'sass-loader'
]
}
]
},
// src配下のhtmlファイルを出力先distディレクトリに全コピー
plugins: [
new CopyWebpackPlugin([
{ from: './src/*.html', to: './[name].[ext]' },
])
]
};
Webpackのタスクランナーを追加
package.json
{
"main": "webpack.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "build": "webpack",
+ "start": "webpack && webpack-dev-server"
・・・・・
},
"devDependencies": {
"css-loader": "^0.28.10",
"node-sass": "^4.7.2",
"sass-loader": "^6.0.6",
"style-loader": "^0.20.2",
"webpack": "^4.0.1",
"webpack-cli": "^2.0.9",
"webpack-dev-server": "^3.0.0"
・・・・・
},
"dependencies": {
"copy-webpack-plugin": "^4.4.2"
・・・・・
}
}
Webpackのビルド実行&サーバ起動
npm run start
npm i -D webpack webpack-cli webpack-dev-server style-loader css-loader --save
npm i copy-webpack-plugin --save
const CopyWebpackPlugin = require('copy-webpack-plugin')
module.exports = {
mode: 'development', // [v4から] development or production
entry: `./src/app/index.js`,
output: {
path: `${__dirname}/dist`,
filename: 'bundle.js'
},
module: {
rules: [
{
//SCSS⇨CSSへの変換設定
test: /\.scss/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
url: false,
sourceMap: true,
importLoaders: 2
},
},
'sass-loader'
]
}
]
},
// src配下のhtmlファイルを出力先distディレクトリに全コピー
plugins: [
new CopyWebpackPlugin([
{ from: './src/*.html', to: './[name].[ext]' },
])
]
};
Webpackのタスクランナーを追加
package.json
{
"main": "webpack.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "build": "webpack",
+ "start": "webpack && webpack-dev-server"
・・・・・
},
"devDependencies": {
"css-loader": "^0.28.10",
"node-sass": "^4.7.2",
"sass-loader": "^6.0.6",
"style-loader": "^0.20.2",
"webpack": "^4.0.1",
"webpack-cli": "^2.0.9",
"webpack-dev-server": "^3.0.0"
・・・・・
},
"dependencies": {
"copy-webpack-plugin": "^4.4.2"
・・・・・
}
}
Webpackのビルド実行&サーバ起動
npm run start
{
"main": "webpack.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "build": "webpack",
+ "start": "webpack && webpack-dev-server"
・・・・・
},
"devDependencies": {
"css-loader": "^0.28.10",
"node-sass": "^4.7.2",
"sass-loader": "^6.0.6",
"style-loader": "^0.20.2",
"webpack": "^4.0.1",
"webpack-cli": "^2.0.9",
"webpack-dev-server": "^3.0.0"
・・・・・
},
"dependencies": {
"copy-webpack-plugin": "^4.4.2"
・・・・・
}
}
npm run start
ビルド出来てサーバも無事に動いた。。。
Webサイトにアクセス
さて、まだポートフォリオの中身をどうしよう。
Author And Source
この問題について(ポートフォリオを作り始めて無料で公開する(Webpack4使ってみた)), 我々は、より多くの情報をここで見つけました https://qiita.com/uegaki-masaaki/items/b5d3454d543e3d96cb99著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .