投稿
こんにちは、フリー写真素材サイト「Canvaspace」管理人のYasuです。
今回はwebpack4とVue2、TypeScriptの環境を作成していきたいと思います。
Vue ver2が今年いっぱいでサポートが終了します。
Vue ver2を使用している管理人の音楽プロジェクト「昼休みプレイン」のオフィシャルホームページでVue公式が発表している移行ビルドを実行してみましたが、一筋縄ではビルドが通らなかったため、まずは最小の環境で移行ビルドを試すためにwebpack4とVue2、TypeScriptの環境を作成しました。
お好きなディレクトリ(フォルダー)を作成する
npm init -y
行うとpackage.jsonというファイルが作成されます。
npm i -D webpack@4 webpack-cli@3 webpack-dev-server@3 copy-webpack-plugin@5
npm i -S vue@2 vue-class-component vue-property-decorator
npm i -D css-loader@3 style-loader@1 ts-loader@7 vue-loader@15
npm i -D @babel/core@7 @babel/preset-env@7 typescript@3 vue-template-compiler@2
"babel": {
"presets": [
"@babel/preset-env"
]
},
"browserslist": "last 2 versions, not dead, not ie > 0"
const path = require("path");
const VueLoaderPlugin = require("vue-loader/lib/plugin");
const CopyPlugin = require("copy-webpack-plugin");
module.exports = {
entry: "./src/index.ts",
output: {
path: path.resolve(__dirname, "./dist"),
filename: "bundle.js",
},
devServer: {
contentBase: path.resolve(__dirname, "public"),
},
module: {
rules: [
{
test: /\.vue$/,
loader: "vue-loader",
},
{
test: /\.js$/,
loader: "babel-loader",
},
{
test: /\.ts$/,
use: [
{
loader: "ts-loader",
options: {
appendTsSuffixTo: [/\.vue$/],
},
},
],
},
{
test: /\.css$/,
use: ["vue-style-loader", "css-loader"],
},
],
},
resolve: {
extensions: [".js", ".ts", ".vue", ".json"],
alias: {
vue$: "vue/dist/vue.esm.js",
},
},
plugins: [new VueLoaderPlugin(), new CopyPlugin([{ from: "./public" }])],
};
package.json
"scripts": {
"dev": "webpack-dev-server --hot"
},
tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs",
"noImplicitAny": true,
"experimentalDecorators": true
},
"include": ["./@types", "./src/**/*.vue", "./src/**/*.ts"],
"paths": { "@/*": ["/src/*"] },
"baseUrl": "./"
}
// App.ts
import {Component, Vue} from 'vue-property-decorator';
@Component
export default class App extends Vue {
}
<template>
<div>
<p>Hello VueApp</p>
</div>
</template>
<script lang="ts">
import App from "./App";
export default App;
</script>
import Vue from "vue";
import App from "./App.vue";
new Vue({
render: (h) => h(App),
}).$mount("#app");
npm run dev
上記コマンドを実行後にコマンドプロントに「Compiled successfully.」
ブラウザを開いて「localhost:8080」とURLを入力し画面に「Hello VueApp」と表示されれば、webpack4、Vue2、TypeScriptの環境構築は成功です!
今回上記の操作を行ったコードをこちらで公開しています。
上記の手順が面倒という方はコピーしてご使用ください。
コピー後に
npm i
npm run dev
を行っていただければ実行できます。
関連情報
参考情報