jrg-project-5
jrg-project-5 copied to clipboard
我也会 Webpack 啊啊啊!
Webpack
我学新东西的套路就是: 「copy - run - modify」 「抄 - 运行 - 修改」
- 抄文档给的例子
- 在自己这里运行成功
- 改一下,看还能不能运行成功
我们学 Webpack 也遵循同样的套路。
安装
我们要使用 npm 来安装 webpack。
- 为了让你更了解 npm,我们要做两件事(可不做)
- 运行
npm config set loglevel http
,让你知道 npm 发的每一个请求 - 运行
npm config set progress false
,关闭那个进度条
- 运行
- 为了让你的安装速度变快,运行
npm config set registry https://registry.npm.taobao.org/
- 这会让你在运行 npm adduser 的时候出问题,想要恢复成原样,只需要
npm config delete registry
即可
- 这会让你在运行 npm adduser 的时候出问题,想要恢复成原样,只需要
- 现在,使用
npm i -g webpack
,正式安装 webpack- 如果报错说有权限问题,就是用
sudo npm i -g webpack
- Windows 里没有 sudo,那么你只能「以管理员身份运行」Git Bash,然后再运行命令
- 如果报错说有权限问题,就是用
- 验证安装成功
运行
webpack --help
如果看到类似下面的信息,就说明安装成功webpack 1.14.0 Usage: https://webpack.github.io/docs/cli.html ... ... --display-cached-assets --display-reasons, --verbose, -v
ES Modules
终于安装好了,可以开始使用 Webpack 了吗?
不行,我们有一个重要的知识需要学习一下,那就是 ES 模块,也就是 import 和 export 两个关键字。
请现到 MDN 上了解一下它们的用法:
如果你看晕了,没关系,你只要看两个页面的最前面一段就行了。后面我们会用 「copy - run - modify」 套路来学习它们。
Webpack
copy:去 Webpack 的官网上找个例子来玩玩
https://webpack.js.org/
往下滚,看到例子
run:把例子弄到本地
- 随意建个目录,比如 webpack-demo
- 进入目录后,将官网的例子弄到本地,结果如下:
. ├── app.js ├── bar.js ├── page.html └── webpack.config.js
- 按照官网说的,运行
webpack
,看到如下结果:Hash: a5d289a022d184d8fbff Version: webpack 1.14.0 Time: 36ms Asset Size Chunks Chunk Names bundle.js 1.42 kB 0 [emitted] main [0] ./app.js 33 bytes {0} [built]
- 打开 page.html,F12 打开控制台,居然报错了!!!
不靠谱的官网Uncaught SyntaxError: Unexpected token import
- 然后只能 copy 阮一峰的教程咯,把 webpack.config.js 改成这样
module.exports = { entry: './app.js', output: { filename: 'bundle.js' }, module: { loaders:[ { test: /\.js[x]?$/, exclude: /node_modules/, loader: 'babel-loader?presets[]=es2015&presets[]=react' }, ] } }
- 再次运行
webpack
,又出错:
是阮的问题吗?不是,他的教程里说了要安装一些 npm 包才能成功。 上面的提示说没有 'babel-loader' ,我们试着安装一下:ERROR in Entry module not found: Error: Cannot resolve module 'babel-loader' in /tmp/webpack-demo
再次运行npm i babel-loader
webpack
,它说需要安装 'babel-core',跟上次的提示不一样了,看来只要我们一直安装下去就行了
再运行npm i babel-core
webpack
,提示变了:
这次需要安装的是Module build failed: Error: Couldn't find preset "es2015" relative to directory "/tmp/webpack-demo"
babel-preset-es2015
(不要问我为什么它不提示完整的名字)npm i babel-preset-es2015 然后运行 webpack,看报错,知道需要安装 babel-preset-react npm i babel-preset-react 然后运行 webpack,终于成功了…… Hash: 4950c10e0d1d81a2a8f1 Version: webpack 1.14.0 Time: 475ms Asset Size Chunks Chunk Names bundle.js 1.83 kB 0 [emitted] main + 2 hidden modules
- 用浏览器打开 page.html,F12 打开控制台,终于没有报错了!
Modify
虽然没有报错,但是什么功能也没有啊!摔!再次吐槽 Webpack 官网。
我们来改一下 bar.js 吧:
export default function bar() {
alert('Hello Webpack!')
}
重新运行 webpack,然后刷新 page.html。
如果你看到浏览器弹框说「Hello Webpack」,那么你就学会使用 Webpack 了。
致饥人谷学员
你需要看懂这篇教程,并且运行成功。
然后新建一个 GitHub 项目,将代码上传到里面。上传成功后,将项目主页的链接放在本帖的评论区中,谢谢!
注意
截止时间:本周四21:00前。我会在周六直播此贴内容。
你需要在项目的根目录添加 .gitignore 文件,并且在里面加上一行 node_modules
,以防止你把这个目录上传到 GitHub 上。你在新建项目的时候选择 Node,也可以达到同样目的。
但是缺点就是我无法使用你安装的 npm 包,所以你需要把你安装的包写在一个地方,比如 README 里:
npm i babel-loader babel-core babel-preset-es2015 babel-preset-react
当然你用 package.json 来记录就更好了
无关人员请不要回复此贴,回复会被删。
webpack-demo ycr
yjl for v-o-r task-01 link
webpack-demo HJN
webpack-demo GJC
webpack-demo WXY
webpack-demoWhj
webpack JHX git操作太烂了😞
webpack CJH
webpack LWE
github仓库链接 zw
webpack-demo LX
webpack-demo ZJY
webpack-demo CJC
webpack-demo zxw
webpack-demo zph
webpack-demo wlf
webpack_demo任务3班陈捷
webpack-demoxxk
webpack ls
webpack-demo wq
最后一个,我是来收尾的。。。 hsy
webpack-demo SHZ
webpack2-demo GQC
webpack-demo LC
webpack HL