ポートフォリオを作り始めて無料で公開する(Webpck4、BabelでES6→ES5に変換)
3254 ワード
ポートフォリオを作り始めて無料で公開する(Babelの塔)の続きです。
前回、Babelで変換後に、Chromeで閲覧時に謎エラーで動かなくなってしまいましたが、
やっと、ChromeとIE11両方で動きました!やったことの備忘録を書いておきます。
エラーは結局、jQuery周りの変換がちゃんと出来てなかった事が原因のようでした。
その対策もプラグインでしました。
Babelインストール
npm i -D babel-core babel-loader babel-preset-es2015 --save-dev
npm i babel-polyfill --save-dev
npm i -D babel-core babel-loader babel-preset-es2015 --save-dev
npm i babel-polyfill --save-dev
インストールしたBabel
package.json
"devDependencies": {
+ "babel-core": "^6.26.0",
+ "babel-loader": "^7.1.3",
+ "babel-polyfill": "^6.26.0",
+ "babel-preset-es2015": "^6.24.1",
.babelrcを作成
.babelrc
{
"presets": [
"es2015"
]
}
Webpackの設定にBabelでJS読み込みするように追加、jQueryの設定を追加
webpack.config.js
+ const webpack = require('webpack');
・・・・・・・
module: {
rules: [
+ {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ loader: 'babel-loader'
+ }
]
},
・・・・
plugins: [
・・・・
+ new webpack.ProvidePlugin({
+ $: 'jquery',
+ jQuery: 'jquery'
+ })
]
アプリのJS内で使ってたjQueryのImport文を修正
-import * as $ from 'jquery';
+import $ from 'jquery';
Webpackでビルド&サーバ起動
npm run start // "webpack && webpack-dev-server"
.babelrc
{
"presets": [
"es2015"
]
}
webpack.config.js
+ const webpack = require('webpack');
・・・・・・・
module: {
rules: [
+ {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ loader: 'babel-loader'
+ }
]
},
・・・・
plugins: [
・・・・
+ new webpack.ProvidePlugin({
+ $: 'jquery',
+ jQuery: 'jquery'
+ })
]
アプリのJS内で使ってたjQueryのImport文を修正
-import * as $ from 'jquery';
+import $ from 'jquery';
Webpackでビルド&サーバ起動
npm run start // "webpack && webpack-dev-server"
-import * as $ from 'jquery';
+import $ from 'jquery';
npm run start // "webpack && webpack-dev-server"
これで無事にIEと、Chromeで閲覧できました。
Author And Source
この問題について(ポートフォリオを作り始めて無料で公開する(Webpck4、BabelでES6→ES5に変換)), 我々は、より多くの情報をここで見つけました https://qiita.com/uegaki-masaaki/items/3cb394cedb0e4cf892f6著者帰属:元の著者の情報は、元の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 .