從昨天晚上開始認真看 webpack 得教學,花了半天多才漸漸理解如何使用,我果然還是不適合一開始就用官方文件來閱讀,還是找有教學的影片來看比較好吸收。
1. 套件安裝
⊙ 主要套件 : webpack
⊙ ESLint 檢查: eslint eslint-loader
⊙ Babel (ECMAScript6 語法轉換) : babel-core babel-loader babel-preset-es2015
⊙ React 相關套件: react rect-dom jsx-loader eslint-plugin-react babel-preset-react
packages.json 大致上會如下:
2. webpack.config.js 設定檔
⊙ 目前就只測試到基本的 eslint 檢查,可用 .jsx 副檔名
3. ESLint 設定
⊙ 套件安裝
⊙ 產生基本設定檔,
⊙ 加上 React 檢查套件
* extends 裡加上 `plugin:react/recommended` ,額外用別人寫好的檢查套件
* 可避免 import module 後,出現未使用變數的問題
* 若要使用`dangerouslySetInnerHTML`這語法,需在 rules 內加上 `"react/no-danger": 0`
* jQuery 可在 env 內加上來略過錯誤
* 全域變數請另外寫 globals 來略過檢查
1. 套件安裝
⊙ 主要套件 : webpack
⊙ ESLint 檢查: eslint eslint-loader
⊙ Babel (ECMAScript6 語法轉換) : babel-core babel-loader babel-preset-es2015
⊙ React 相關套件: react rect-dom jsx-loader eslint-plugin-react babel-preset-react
packages.json 大致上會如下:
{
"name": "sample",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"dependencies": {
"jsx-loader": "^0.13.2",
"webpack": "^1.12.14"
},
"devDependencies": {
"babel-core": "^6.7.4",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"eslint": "^2.7.0",
"eslint-loader": "^1.3.0",
"eslint-plugin-react": "^4.2.3",
"react": "^0.14.8",
"react-dom": "^0.14.8"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
2. webpack.config.js 設定檔
⊙ 目前就只測試到基本的 eslint 檢查,可用 .jsx 副檔名
module.exports = {
entry: ['./assets/jsx/app'],
output: {
path: 'public/js/',
filename: 'bundle.js'
},
resolve: {
extensions: ['', '.js', '.jsx']
},
module: {
preLoaders: [
{
test: /\.jsx$/,
exclude: /node_modules/,
loader: 'eslint-loader'
}
],
loaders: [
{
test: /\.js|jsx$/,
exclude: /node_modules/,
loader: 'babel-loader',
query:{
"presets": ["es2015", "react"]
}
}
]
}
}
3. ESLint 設定
⊙ 套件安裝
sudo npm install -g eslint
⊙ 產生基本設定檔,
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
? Do you use CommonJS? Yes
? Do you use JSX? Yes
? Do you use React Yes
? 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? Yes
? What format do you want your config file to be in? JSON
⊙ 加上 React 檢查套件
npm install --save-dev eslint-plugin-react
* extends 裡加上 `plugin:react/recommended` ,額外用別人寫好的檢查套件
* 可避免 import module 後,出現未使用變數的問題
* 若要使用`dangerouslySetInnerHTML`這語法,需在 rules 內加上 `"react/no-danger": 0`
* jQuery 可在 env 內加上來略過錯誤
* 全域變數請另外寫 globals 來略過檢查
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"jquery": true
},
"extends": ["eslint:recommended", "plugin:react/recommended"],
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
},
"sourceType": "module"
},
"plugins": [
"react"
],
"rules": {
"indent": [
"error",
4
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
],
"react/no-danger": 0,
"no-console": ["error", { "allow": ["log", "warn", "error"] }]
},
"globals": {
"socket": true,
"eventEmitter": true
}
}
全站熱搜
留言列表