webpack + babel 環境搭建
這篇必須寫,媽的, 我很像罵人,為啥,因為網上配置他媽的老出錯!
還有一些教程也配置不過關,所以我寫了這篇文章,讓 小白少走彎路!
webpack 配置,一般都是版本不相容或者匹配的問題,所以我採用都是指定版本
好,開始!
1, node 安裝
版本8.xx 以上這個簡單,不說了
2, 安裝webpack
npm install [email protected] -g
npm install [email protected] --save-dev
npm install [email protected] -g
上面就搞定了初步的安裝,下面就要安裝bable 等別的loader
C:\Users\Administrator\Desktop\kitty>npm install --save-dev babel-preset-es2015 npm WARN deprecated [email protected]: � Thanks for using Babel: we re commend using babel-preset-env now: please read babeljs.io/env to update! npm WARN [email protected] requires a peer of @babel/[email protected]
+ [email protected] added 40 packages from 6 contributors and audited 4806 packages in 21.862s found 0 vulnerabilities
C:\Users\Administrator\Desktop\kitty>webpack
Webpack is watching the files…
Hash: ef04c3db40abca09db51 Version: webpack 3.6.0 Time: 54ms Asset Size Chunks Chunk Names all.js 5.37 kB 0 [emitted] main [0] ./app/main.js 2.9 kB {0} [built] [failed] [1 error]
// 下面就是版本不相容!!
ERROR in ./app/main.js Module build failed: Error: Cannot find module '@babel/core' [email protected] requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babel-core'), you should install '[email protected]'. at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15) at Function.Module._load (internal/modules/cjs/loader.js:506:25) at Module.require (internal/modules/cjs/loader.js:636:17) at require (internal/modules/cjs/helpers.js:20:18) at Object.<anonymous> (C:\Users\Administrator\Desktop\kitty\node_modules\bab el-loader\lib\index.js:10:11) at Module._compile (internal/modules/cjs/loader.js:688:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10) at Module.load (internal/modules/cjs/loader.js:598:32) at tryModuleLoad (internal/modules/cjs/loader.js:537:12) at Function.Module._load (internal/modules/cjs/loader.js:529:3) at Module.require (internal/modules/cjs/loader.js:636:17) at require (internal/modules/cjs/helpers.js:20:18) at loadLoader (C:\Users\Administrator\Desktop\kitty\node_modules\loader-runn er\lib\loadLoader.js:13:17) at iteratePitchingLoaders (C:\Users\Administrator\Desktop\kitty\node_modules \loader-runner\lib\LoaderRunner.js:169:2) at runLoaders (C:\Users\Administrator\Desktop\kitty\node_modules\loader-runn er\lib\LoaderRunner.js:362:2) at NormalModule.doBuild (C:\Users\Administrator\Desktop\kitty\node_modules\w ebpack\lib\NormalModule.js:182:3) at NormalModule.build (C:\Users\Administrator\Desktop\kitty\node_modules\web pack\lib\NormalModule.js:275:15) at Compilation.buildModule (C:\Users\Administrator\Desktop\kitty\node_module s\webpack\lib\Compilation.js:149:10) at moduleFactory.create (C:\Users\Administrator\Desktop\kitty\node_modules\w ebpack\lib\Compilation.js:447:10) at factory (C:\Users\Administrator\Desktop\kitty\node_modules\webpack\lib\No rmalModuleFactory.js:241:5) at applyPluginsAsyncWaterfall (C:\Users\Administrator\Desktop\kitty\node_mod ules\webpack\lib\NormalModuleFactory.js:94:13) at C:\Users\Administrator\Desktop\kitty\node_modules\tapable\lib\Tapable.js: 268:11 at NormalModuleFactory.params.normalModuleFactory.plugin (C:\Users\Administr ator\Desktop\kitty\node_modules\webpack\lib\CompatibilityPlugin.js:52:5) at NormalModuleFactory.applyPluginsAsyncWaterfall (C:\Users\Administrator\De sktop\kitty\node_modules\tapable\lib\Tapable.js:272:13) at resolver (C:\Users\Administrator\Desktop\kitty\node_modules\webpack\lib\N ormalModuleFactory.js:69:10) at process.nextTick (C:\Users\Administrator\Desktop\kitty\node_modules\webpa ck\lib\NormalModuleFactory.js:194:7) at process._tickCallback (internal/process/next_tick.js:61:11)
C:\Users\Administrator\Desktop\kitty>babel -v You have mistakenly installed the `babel` package, which is a no-op in Babel 6. Babel's CLI commands have been moved from the `babel` package to the `babel-cli` package.
npm uninstall babel npm install --save-dev babel-cli
See http://babeljs.io/docs/usage/cli/ for setup instructions.
C:\Users\Administrator\Desktop\kitty>npm uninstall babel-loader --save-dev npm WARN [email protected]0.0 No description npm WARN [email protected] No repository field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fse vents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected] 1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"} )
removed 19 packages and audited 4769 packages in 6.974s found 0 vulnerabilities
// 這裡先解除安裝,然後制定版本安裝 C:\Users\Administrator\Desktop\kitty>npm install [email protected] --save-dev npm WARN [email protected] No description npm WARN [email protected] No repository field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fse vents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected] 1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"} )
+ [email protected] added 6 packages from 4 contributors and audited 4787 packages in 8.766s found 0 vulnerabilities
C:\Users\Administrator\Desktop\kitty>webpack
Webpack is watching the files…
Hash: 709971fca5c52cce8ebb Version: webpack 3.6.0 Time: 671ms Asset Size Chunks Chunk Names all.js 2.89 kB 0 [emitted] main [0] ./app/main.js 62 bytes {0} [built] [1] ./app/a.js 250 bytes {0} [built] Hash: ceeb1741ae8ee8828007 Version: webpack 3.6.0 Time: 22ms Asset Size Chunks Chunk Names all.js 2.88 kB 0 [emitted] main [1] ./app/a.js 242 bytes {0} [built] + 1 hidden module Hash: 59ade6816c93002d8536 Version: webpack 3.6.0 Time: 12ms Asset Size Chunks Chunk Names all.js 2.87 kB 0 [emitted] main [1] ./app/a.js 234 bytes {0} [built] + 1 hidden module Hash: eb3ba75d84754fd97736 Version: webpack 3.6.0 Time: 23ms Asset Size Chunks Chunk Names all.js 2.87 kB 0 [emitted] main [1] ./app/a.js 230 bytes {0} [built] + 1 hidden module Hash: 8ce48d1b17fea4d14204 Version: webpack 3.6.0 Time: 22ms Asset Size Chunks Chunk Names all.js 2.87 kB 0 [emitted] main [1] ./app/a.js 226 bytes {0} [built] + 1 hidden module
再次總結,
1, webpack 和webpack-cli 要求
2, 其它的東西也要相容,若出現不相容,就解除安裝掉,同時重新以指定版本的形式安裝就行了,這樣就能保證執行成功了!
webpack 打包工具非常牛,但是初學者往往很生氣,因為配置不成功,加油吧!!