webpack安装及npm常见问题解决

  1. 安装nodejs
    我的安装目录为默认安装路径,也就是 C:\Program Files\nodejs
    这里的安装路径对于后面的配置环境变量有很大的关系,请记住
    配置环境变量。
    可以参考https://blog.csdn.net/henery_002/article/details/78016575

  2. 用命令行来检查是否安装成功
    node -v
    npm -v
    成功安装则会出现相对应的版本号

安装成功.png
  1. 在安装路径下,我们可以看到有这样的文件存在


    文件.png

    我们自己手动新建两个文件夹,分别是:

  • node_global 全局包目录
  • node_cache 缓存目录
    将对应的路径加入环境变量中,上述链接有详细说明,这里不再赘述


    用户path.png

    其实我们这里只要加入C:\Program Files\nodejs\node_global就行了
    另外一个是系统自己生成的,看上图

系统NODE_PATH.png

添加全局包目录所在路径,看上图

添加属性.png

在系统变量的Path 下面添加安装路径,看上图

  1. 对应操作结束之后,发现打入 npm install express -g并不能安装
    出现了下面的错误


    image.png

    最后终于在网上寻求到了答案,发现安装这个时候的命令行窗口必须用管理员身份运行才可以进行安装(win10在桌面左下角搜索栏输入”cmd"出现下面这个)


    命令提示.png

    鼠标右键管理员身份运行即可。
    可以发现管理员身份打开命令提示符的时候是C:\Windows\system32>...
管理员身份安装.png

安装完之后要在命令行里面看看版本号
如果可以看,则说明配置没有问题
express有点例外


初始化npm.png
得先定义为全局变量.png

在这里最好指定版本,如果是npm install webpack -g是直接安装最新版本的,我在这里安装了最新版本,在下面打包的时候就踩坑了。
安装的时候应该输入这句:

        npm install webpack@3.5.3 -g

在对应的目录下面用--save-dev 可以在本地生成一个json文件
所以要先进入那个文件夹
生成之后就可以在这个文件夹进行相关操作了

C:\Windows\system32>cd C:\webpack\webpack-test

C:\webpack\webpack-test>npm install webpack --save-dev


目录中的webpack.png

但是出现了问题:webpack新版不能直接使用webpack这个命令,已经分离到了webpack-cli之中。但四使用webpack-cli还是不能使用,有很多坑。采用降级,我使用了3.5.3版,这个版本是好的。可以直接用webpack命令。

所以我就把刚刚的卸载了,安装了指定版本的

    npm uninstall webpack -g

    npm install webpack@3.5.3 -g
再次安装webpack.png

这样的话webpack命令就能够直接用了。
进行打包

    webpack hello.js hello.bundle.js
    
   // 将hello.js打包成hello.bundle.js

打包:
记得要在你的打包的文件的那个路径下面
直接在命令行输入
webpack
就完成了


image.png
打包js文件.png

图片第二部分有两个模块,是因为在hello.js中引用了这个world.js,所以一起打包了。

  • 加载css文件进去的时候要注意,必须先安装style-loader,css-loader,使得css文件被引用之前先被css-load处理,并且css文件可以生效,这样可以正确的被webpack进行打包
安装css-loader.png
引入css文件.png

新建一个html文件引入hello.bundle.js(跟平常引入js文件一样)
每次修改js,css文件之后都要用 webpack命令重新打包。也可以用命令自动更新( --watch)

webpack hello.js hello.bundle.js --watch

这样的话修改之后就不用命令行打包了

用cnpm(淘宝镜像)代替npm


1.png
cnpm代替npm.png
安装指定的依赖:

格式: cnpm install 包名称
如下:

    cnpm install babel-polyfill

也可以先在package.json文件里面先写好要安装的依赖包和版本
比如
"babel-polyfill":"^6.0.0"
然后再在命令行里面执行
cnpm install

关于webpack的配置

自己新建一个webpack.config.js文件
在里面进行入口文件和输出文件的设置

    const path = require("path")  //定义一个路径,这个是一定要写的,可以不用管他,就当作是我们这一整个webpack项目的位置

    module.exports={

    entry:path.join(__dirname,"src/script/main.js"),  //设置了程序的入口.就在这个项目src下面的script下面的main.js,注意dirname前面是__

    output:{

    filename:"bundle.js",    //输出的文件名为bundle.js

    path:path.join(__dirname,"dist")     //设置了输出文件名的路径,在本项目的dist文件夹下面,没有的话webpack会自己建的
     }
  }
    //module.exports就要要想外界暴露的部分,外面的人可以根据这个来进行操作

简而言之,构建一个webpack应用的步骤如下:
1. 新建一个文件夹,这里我给他起个名字叫 web
2. 在web的路径下用命令行
  cnpm install webpack --save-dev  //我已经用淘宝镜像了cnpm
3. 自己新建webpack.config.js定义入口和出口文件
4. 弄个js文件什么的打包
在web的路径下用命令行
   webpack
就可以了

打包出来的bundle.js为什么有那么多乱七八糟的内容?
只要是为了封装js,使其支持commonjs的模块化
commonjs是要依赖于nodejs webpack的

如何用webpack压缩js代码

  1. 首先在webpack.config.js中引入

     const uglify = require('uglifyjs-webpack-plugin');
    

2.然后在entry和output后面加上

  plugins:[
    new uglify()
 ]
image.png

然后再执行“webpack”命令编译一下


image.png

被压缩啦

webpack都做了哪些事情?

模块化
打包依赖
webpack支持commonjs,如果没有模块化,用<script>标签引入,我们要完全搞清楚每个模块之间的依赖关系,要保证你依赖的js文件在你这个文件的前面,搞错一个依赖关系就完蛋,而且要定义很多全局变量,会造成全局变量污染。
webpack的理念就是一切皆模块,把那一大堆css,js在我的一个总入口文件require引入,剩下的事情webpack会自动处理,包括所有模块的前后依赖关系去下载啊处理

压缩Js代码
先了解一下Webpack从构建到输出文件结果的过程
1.解析配置参数,合并从shell传入和webpack.config.js文件的配置信息,输出最终的配置信息
2.注册配置中的插件,好让插件监听webpack构建生命周期中的事件节点,做出对应的反应
3.解析配置文件中entry入口文件,并找出每个文件依赖的文件,递归下去
4.在递归每个文件的过程中,根据文件类型和配置文件中loader找出相对应的loader对文件进行转换
5.递归结束之后得到每个文件最终的结果,根据entry配置生成代码chunk
6.输出所有chunk到文件系统

windows怎么卸载cnpm?
npm uninstall cnpm -g

Npm常见问题

https://blog.csdn.net/ribmusic/article/details/80508748
自从在公司经历过莫名其妙的抛出错误后
自己的电脑也出现了问题,难道是因为自己拷了那两个文件过去????

image.png

然后就看到了这样一篇博客:
image.png

打了 rm -rf node_modules和cnpm install (我已经把npm替换为cnpm)之后发现还真的好了
神奇。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容