「old/vue.js/setup」の版間の差分
提供: 個人的記録
(ページの作成:「Category:Software 昔、browserfyでやってたのをメモしていたが、どうにもwebpackのほうが便利そうなので書き直...」) |
細 (Gonbe がページ「vue.js/setup」を「old/vue.js/setup」に、リダイレクトを残さずに移動しました) |
||
(同じ利用者による、間の20版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category: | + | [[Category:old/vue.js]] |
昔、[[vue.js/setup browserfy|browserfy]]でやってたのをメモしていたが、どうにもwebpackのほうが便利そうなので書き直し。 | 昔、[[vue.js/setup browserfy|browserfy]]でやってたのをメモしていたが、どうにもwebpackのほうが便利そうなので書き直し。 | ||
+ | |||
+ | = インストール = | ||
+ | vue-loader15からwebpackで使うにはvue-loader-options-pluginが必要になったのでインストール。 | ||
+ | <pre> | ||
+ | npm init | ||
+ | npm install --save-dev webpack webpack-dev-server | ||
+ | npm install --save-dev webpack-cli | ||
+ | npm install --save vue | ||
+ | npm install --save-dev vue-loader vue-template-compiler css-loader vue-loader-options-plugin | ||
+ | npm install --save-dev babel-loader babel babel-core babel-preset-es2015 | ||
+ | npm install --save-dev sass-loader node-sass | ||
+ | </pre> | ||
+ | |||
+ | == package.json == | ||
+ | webpack-dev-serverを使えるように package.json に以下のように dev の設定を記述する。<br> | ||
+ | webpack4からは --mode 指定が必要。<br> | ||
+ | buildもwebpackでやるので記述しておく。 | ||
+ | <pre> | ||
+ | "scripts": { | ||
+ | "test": "echo \"Error: no test specified\" && exit 1", | ||
+ | "build": "webpack", | ||
+ | "dev": "webpack-dev-server --mode development --hot", | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == webpack.config.js == | ||
+ | webpack.config.jsを作成してビルド周りの設定を定義。<br> | ||
+ | vue-loader 15から VueLoaderPlugin の設定が必要。 | ||
+ | <pre> | ||
+ | // webpack.config.js | ||
+ | const VueLoaderPlugin = require('vue-loader/lib/plugin') //VueLoaderPluginが必要になった | ||
+ | module.exports = { | ||
+ | entry: './src/index.js', //ソースファイルの場所 | ||
+ | output: { | ||
+ | filename: 'bundle.js', //コンパイルで生成するファイル | ||
+ | path: `${__dirname}/dest`, //出力先。${__dirname} がルートディレクトリっぽい | ||
+ | }, | ||
+ | module: { | ||
+ | rules: [ | ||
+ | { | ||
+ | test: /\.vue$/, | ||
+ | loader: 'vue-loader', | ||
+ | }, | ||
+ | { | ||
+ | test: /\.js$/, | ||
+ | loader: 'babel-loader?presets=es2015', | ||
+ | }, | ||
+ | { | ||
+ | test: /\.(css|sass|scss)$/, | ||
+ | loader: 'sass-loader', | ||
+ | }, | ||
+ | { | ||
+ | test: /\.lless$/, | ||
+ | use: [ | ||
+ | 'vue-style-loader', | ||
+ | 'css-loader', | ||
+ | 'less-loader' | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | resolve: { | ||
+ | extensions: ['.js', '.vue'], | ||
+ | alias: { | ||
+ | vue$: 'vue/dist/vue.esm.js', | ||
+ | }, | ||
+ | }, | ||
+ | devServer: { | ||
+ | contentBase: 'dest', | ||
+ | }, | ||
+ | plugins: [ | ||
+ | new VueLoaderPlugin() //PluginにVueLoaderPluginを定義する | ||
+ | ], | ||
+ | } | ||
+ | </pre> |
2021年3月27日 (土) 21:26時点における最新版
昔、browserfyでやってたのをメモしていたが、どうにもwebpackのほうが便利そうなので書き直し。
インストール
vue-loader15からwebpackで使うにはvue-loader-options-pluginが必要になったのでインストール。
npm init npm install --save-dev webpack webpack-dev-server npm install --save-dev webpack-cli npm install --save vue npm install --save-dev vue-loader vue-template-compiler css-loader vue-loader-options-plugin npm install --save-dev babel-loader babel babel-core babel-preset-es2015 npm install --save-dev sass-loader node-sass
package.json
webpack-dev-serverを使えるように package.json に以下のように dev の設定を記述する。
webpack4からは --mode 指定が必要。
buildもwebpackでやるので記述しておく。
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack", "dev": "webpack-dev-server --mode development --hot", }
webpack.config.js
webpack.config.jsを作成してビルド周りの設定を定義。
vue-loader 15から VueLoaderPlugin の設定が必要。
// webpack.config.js const VueLoaderPlugin = require('vue-loader/lib/plugin') //VueLoaderPluginが必要になった module.exports = { entry: './src/index.js', //ソースファイルの場所 output: { filename: 'bundle.js', //コンパイルで生成するファイル path: `${__dirname}/dest`, //出力先。${__dirname} がルートディレクトリっぽい }, module: { rules: [ { test: /\.vue$/, loader: 'vue-loader', }, { test: /\.js$/, loader: 'babel-loader?presets=es2015', }, { test: /\.(css|sass|scss)$/, loader: 'sass-loader', }, { test: /\.lless$/, use: [ 'vue-style-loader', 'css-loader', 'less-loader' ] } ] }, resolve: { extensions: ['.js', '.vue'], alias: { vue$: 'vue/dist/vue.esm.js', }, }, devServer: { contentBase: 'dest', }, plugins: [ new VueLoaderPlugin() //PluginにVueLoaderPluginを定義する ], }