Webpackまとめ2-プロファイルパッケージタイプ
4955 ワード
Webpackまとめ2--プロファイルタイプ--babel webpackパッケージcssファイル webpackパッケージlessファイル webpackパッケージsassファイル webpack処理ピクチャパス webpack処理フォントファイル babel処理高度JS構文 webpack.config.jsテンプレート 拡張 注1:全文の中でプラグインをインストールしてcnpmのために书いて、个人は比较的にyarnを推荐してインストールして、cnpmとyarnの区别、前に転载するブログのnpmとyarnの区别を见ることができます
注2:webpackのバージョン間の互換性に注意する.
Webpackパッケージcssファイル cnpm i style-loader css-loader--save-dev を実行 webpackに追加する.config.jsプロファイル: 注意:useはtestが一致するファイルを処理するためにどのモジュールを使用するかを示す.useにおける関連loaderモジュールの呼び出し順序は、後から前へ呼び出される.
Webpackパッケージlessファイル cnpm i less-loader less-D を実行 webpackを修正する.config.jsこのプロファイル:
Webpackパッケージsassファイル cnpm i sass-loader node-sass--save-dev を実行 webpack.config.jsにsassファイルを処理するloaderモジュールを追加:
Webpack処理ピクチャパス cnpm i url-loader file-loader --save-dev webpack.config.jsにurlパスを処理するloaderモジュールを追加する: はlimitによってbase 64符号化を行うピクチャサイズを指定することができる.base 64符号化は、指定バイト未満のピクチャのみが行う:
Webpackフォントファイルの処理 webpack.config.jsにurlパスを処理するloaderモジュールを追加する:
Babel処理高級JS構文運転 説明:
babel-loader:importまたはモジュールのロード時にes 6コードを前処理し、es 6構文をes 5構文に変換します.実行 webpack.config.jsに関連するloaderモジュールを追加:
node_をmodulesフォルダを除外項目に追加:プロジェクトルートディレクトリには、プロジェクトのルートディレクトリに追加する.babelrcファイルを変更し、このプロファイルを次のように変更します:
webpack.config.jsテンプレート
拡張
2つのラーニングリンクを添付します.
Babel-preset-env:必要な唯一のBabelプラグイン
Runtime transformランタイムコンパイルes 6
注2:webpackのバージョン間の互換性に注意する.
Webpackパッケージcssファイル
module: { // loader
rules: [ //
{ test: /\.css$/, use: ['style-loader', 'css-loader'] }// css
]
}
Webpackパッケージlessファイル
{ test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
Webpackパッケージsassファイル
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }
Webpack処理ピクチャパス
{ test: /\.(png|jpg|gif)$/, use: 'url-loader' }
{ test: /\.(png|jpg|gif)$/, use: 'url-loader?limit=43960' },
Webpackフォントファイルの処理
{ test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' }
Babel処理高級JS構文
cnpm i babel-core babel-loader babel-plugin-transform-runtime --save-dev
babelインストール関連loaderパッケージbabel-core
:babelのapiを呼び出すことができ、jsコードをast(抽象文法ツリー)に分析することができ、各プラグインが文法を分析して相応の処理を行うのに便利である.babel-loader
:importまたはモジュールのロード時にes 6コードを前処理し、es 6構文をes 5構文に変換する.babel-loader:importまたはモジュールのロード時にes 6コードを前処理し、es 6構文をes 5構文に変換します.
babel-polyfill
:完全なES 2015+環境に倣い、Promiseなどの新しい組み込みオブジェクト、Arrayなどの静的メソッドを使用することができます.义齿assign、例えばArray.prototype.includesとジェネレータ関数(regeneratorプラグインを使用するために提供されます).これを達成するために、polyfillはStringのようなオリジナルタイプのグローバルレンジに追加されました.babel-runtime babel-plugin-transform-runtime
:babel-polyfillと同様に、使用シーンが異なります.cnpm i babel-preset-es2015 babel-preset-stage-0 --save-dev
babel変換をインストールする構文{ test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ }
node_をmodulesフォルダを除外項目に追加:プロジェクトルートディレクトリに
.gitignore
ファイルを新規作成し、追加:node_modules
.idea
.vscode
.git
{
"presets":["es2015", "stage-0"],
"plugins":["transform-runtime"]
}
webpack.config.jsテンプレート
// , js , node ,
const path = require('path');
// HTML
// , plugins
// htmlWebpackPlugin :
// 1.
// 2. bundle.js
const htmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: path.join(__dirname, './src/main.js'),
output: {
path: path.join(__dirname, './dist'),
filename: 'bundle.js'
},
plugins: [
new htmlWebpackPlugin({
template: path.join(__dirname, "./src/index.html"),// , ,
filename: 'index.html' //
})
],
module: { // ,
rules: [ //
{ test: /\.css$/, use: ['style-loader', 'css-loader'] }, // .css loader
{ test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] }, // .less loader
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }, // scss loader
{ test: /\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader' }, // loader
//limit , , byte, , limit , base64
// , base64
{ test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' }, //
{ test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ }, // babel js
{ test: /\.vue$/, use: 'vue-loader' } // .vue loader
]
}
};
拡張
2つのラーニングリンクを添付します.
Babel-preset-env:必要な唯一のBabelプラグイン
Runtime transformランタイムコンパイルes 6