ホームページ > 記事 > ウェブフロントエンド > Vueフロントエンドアーキテクチャ学習(2)
今回は前回の記事Vueフロントエンドアーキテクチャ学習(1)に引き続き、eslint、babel、postcssの設定を完了させていきますので、皆様のお役に立てれば幸いです。
eslint --init
を使用して eslintrc.js を作成します。 eslint --init
的方式来创建eslintrc.js。
对了,前提我们需要全局安装eslint:npm i -g eslint
。
安装完全局eslint以后,我们在项目根目录使用eslint --init
,我选择自定义的方式来规定eslint规则:
➜ vue-construct git:(master) ✗ eslint --init ? How would you like to configure ESLint? Answer questions about your style ? Are you using ECMAScript 6 features? Yes ? Are you using ES6 modules? Yes ? Where will your code run? Browser, Node ? Do you use CommonJS? Yes ? Do you use JSX? No ? What style of indentation do you use? Spaces ? What quotes do you use for strings? Single ? What line endings do you use? Unix ? Do you require semicolons? No ? What format do you want your config file to be in? (Use arrow keys) ❯ JavaScript
当然,你可以按照自己喜欢,选择自己想要的方式,比如How would you like to configure ESLint? 这个问题的时候,可以选择popular的规则,有Google、standard等规则,选择你想要的就好。
我po下我的配置吧:
// 创建这个文件的话,本王推荐用eslint --init创建 module.exports = { "env": { "browser": true, "node": true }, // https://stackoverflow.com/questions/38296761/how-to-support-es7-in-eslint // 为了让eslint支持es7或更高的语法 "parser": 'babel-eslint', "extends": "eslint:recommended", "parserOptions": { "sourceType": "module" }, "plugins": [ // https://github.com/BenoitZugmeyer/eslint-plugin-html // 支持 *.vue lint "html" ], // https://eslint.org/docs/rules/ "rules": { "indent": [ "error", 2 ], "linebreak-style": [ "error", "unix" ], "quotes": [ "error", "single" ], "semi": [ "error", "never" ], // https://eslint.org/docs/user-guide/configuring#using-configuration-files // "off" or 0 - turn the rule off // "warn" or 1 - turn the rule on as a warning (doesn’t affect exit code) // "error" or 2 - turn the rule on as an error (exit code is 1 when triggered) 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 'no-console': 0, } };
创建.babelrc
文件,直接上配置:
{ "presets": [ [ "env", { "targets": { "browsers": [ "> 1%", "last 2 versions", "ie >= 10" ] }, "modules": false, "useBuiltIns": true } ] ], "plugins": [ "transform-object-rest-spread", "syntax-dynamic-import" ] }
配合webpack配置:
{ test: /\.js$/, include: [resolve('app')], use: [ 'babel-loader', 'eslint-loader' ] },
我们使用的是babel-preset-env,我们知道,babel只是转译了高级语法,比如lambda,class,async等,并不会支持高级的api,所以需要babel-polyfill的帮忙。方便的是,我们只需要"useBuiltIns": true
,然后npm安装babel-polyfill,再在webpack配置中的entry带上babel-polyfill就好了。
babel-preset-env的优点:
通过targets
来决定支持到那个哪些版本的语法就够了,不会过渡转译,可控性强
通过useBuiltIns
来支持babel-polyfill的按需加载,而不是一口气把整个包打入,因为其实我们只用到了很小一部分
transform-object-rest-spread是为了支持const a = {name: kitty, age: 7}; const b = { ...a }
这种es7语法。
syntax-dynamic-import是为了支持const Home = () => import('../views/home')
这种语法,达到按需分割、加载的目的。
创建postcss.config.js
ところで、eslint をグローバルにインストールする必要があります: npm i -g eslint
。
eslint --init
を使用して、eslint ルールを指定するカスタマイズされた方法を選択します。 module.exports = { plugins: [ require('autoprefixer') ], // 配置autoprefix browsers: [ "> 1%", "last 2 versions", "ie >= 10" ] }
rrreee
2. babel を設定します
.babelrc
ファイルを作成して直接設定します: rrreee webpack で設定します:
babel -preset を使用しています-env の場合、babel はラムダ、クラス、非同期などの高レベルの構文のみを変換し、高度な API をサポートしないことがわかっているため、babel-polyfill の助けが必要です。便利なのは、"useBuiltIns": true
だけで済み、npm install babel-polyfill を実行して、webpack 設定のエントリに babel-polyfill を追加するだけです。
targets
を使用するだけで十分です。一時的に変換され、強力な制御性を備えます🎜useBuiltIns
を使用して、babel-polyfill のオンデマンド読み込みをサポートします。 🎜const a = {name: kitty, age: 7}; をサポートするために使用されます。 a }
これは es7 の構文です。 🎜🎜syntax-dynamic-import は、オンデマンドで分割してロードするという目的を達成するために、const Home = () => import('../views/home')
構文をサポートします。 🎜🎜3. postcss を設定する🎜🎜 postcss.config.js
ファイルを作成して設定します。 🎜rrreee🎜概要🎜🎜 これは大したことではなく、eslint、babel、postcss の 3 つだけです。 🎜🎜関連する推奨事項: 🎜🎜🎜🎜Vue フロントエンド アーキテクチャの学習 (1)🎜🎜🎜🎜🎜以上がVueフロントエンドアーキテクチャ学習(2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。