node.js、npm、cnpm、webpack的定义与关系

由于今天新接触了许多软件和一些新名词, 避免自己日后混乱, 现在简单描述一下它们之间的关系

node.js(一个前端的开发环境):

菜鸟教程:

简单的说 Node.js 就是运行在服务端的 JavaScript。

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

摘自文章片段( https://www.zhihu.com/question/33578075知乎文章

这是一种通过JavaScript语言开发web服务端的东西”。如果这种晦涩解释还没把你搞晕,你没准会接着问:“为什么我们要用node.js?”,别人一般会告诉你:node.js有非阻塞,事件驱动I/O等特性,从而让高并发(high concurrency)在的轮询(Polling)和comet构建的应用中成为可能。

npm(安装依赖js包)

因为node.js也有许多依赖的js包, 所以要有一个像maven一样的管理来管理这些js包, 而npm就是这样的功能

cnpm

npm默认向国外网站拉取js包依赖, 难免下载的慢, 所以cnpm是一个国内版的npm,是替代npm的程序把, cnpm用的是淘宝的镜像

webpack(通过npm(cnpm)下载)

Webpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包

使用webpack有什么好处呢?
1、模块化开发
程序员在开发时可以分模块创建不同的js、 css等小文件方便开发,最后使用webpack将这些小文件打包成一个文
件,减少了http的请求次数。
webpack可以实现按需打包,为了避免出现打包文件过大可以打包成多个文件。
2、 编译typescript、ES6等高级js语法
随着前端技术的强大,开发中可以使用javascript的很多高级版本,比如:typescript、ES6等,方便开发,
webpack可以将打包文件转换成浏览器可识别的js语法。
3、CSS预编译
webpack允许在开发中使用Sass 和 Less等原生CSS的扩展技术,通过sass-loader、less-loader将Sass 和 Less的
语法编译成浏览器可识别的css语法。

打包过程:
例:将vue01.html的js进行打包

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF‐8">
<title>vue.js入门程序</title>
 <script src="./vue.min.js"></script>
//<script src="./jquery.min.js"></script>
</head>

<body>
    <div id="app">
        <!-- {{name}} -->
        <span v-text="name"></span>
        <input type="text" v-model.number="num1"> + 
        <input type="text" v-model.number="num2"> = 
        <span v-text="result"></span>
        
        <button @click="abc">计算</button>
        <!‐‐ 在Vue接管区域中使用Vue的系统指令呈现数据
        这些指令就相当于是MVVM中的View这个角色 ‐‐>
        <ul>
            <!‐‐只显示偶数行‐‐>
            <li v-for="(item, index) in list ">{{item}}--{{index}}</li>
            <li v-for="(value,key) in user">{{key}}:{{value}}</li>
            <li v-for="item in userlist">
                <div v-if="item.user.name== 'huang1'" style="color:red">{{item}}</div>
                <div v-else="" style="color:green">{{item}}</div>
            </li>
        </ul>
    </div>
    <script src="./build.js"></script>
  <script>
      //  $(function(){
                // 实例化Vue对象
            //vm :叫做MVVM中的 View Model
            var VM1 = new Vue({
            el:"#app",//表示当前vue对象接管app的div区域
            data:{
                name:'黑马程序员',// 相当于是MVVM中的Model这个角色
                num1:'',
                num2:'',
                result:'',
                list:[1,2,3,4,5],
                user:{name:"huang", age:10},
                userlist:[ 
                    {user:{name:"huang1", age:10}},
                    {user:{name:"huang2", age:20}},
                    {user:{name:"huang3", age:30}}
                ]
            },
            mounted:function() {
                // alert("VM1");
            },
            methods:{
                abc: function(){
                    alert("计算");
                    this.result = this.num1 + this.num2;
                }
            }
            });
        
        //})
       
        
        </script> 
</body>
</html>

一、创建mode01.js文件

var add = function(x, y){
    return x + y;
}

var add1 = function(x, y){
    return x + y;
}

// 导出add方法
// module.exports.add = add;
// module.exports.add2 = add2;
module.exports ={add};//如果有多个方法这样导出

二、创建main.js文件

// main.js表示webpack程序开启的程序入口
// 先导入需要打包的文件
var {add} = require("./model01.js");
var Vue = require("./vue.min.js");

// 把打包文件的Js复制到此处
var VM1 = new Vue({
    el:"#app",//表示当前vue对象接管app的div区域
    data:{
        name:'黑马程序员',// 相当于是MVVM中的Model这个角色
        num1:'',
        num2:'',
        result:'',
        list:[1,2,3,4,5],
        user:{name:"huang", age:10},
        userlist:[ 
            {user:{name:"huang1", age:10}},
            {user:{name:"huang2", age:20}},
            {user:{name:"huang3", age:30}}
        ]
    },
    mounted:function() {
        // alert("VM1");
    },
    methods:{
        abc: function(){
            // alert("计算");
            this.result = add(this.num1, this.num2);
            // this.result = this.num1 + this.num2;
        },
        acc: function(){
            alert("22222");
            // this.result = this.num1 + this.num2;
        }
    }
});

三、进入文件目录下:
在这里插入图片描述
该文件目录下cmd打开命令窗口输入: webpack main.js build.js
在这里插入图片描述
执行成功后就会生成一个build.js文件
在这里插入图片描述
四、测试打包的js文件:
将vue01.html的js代码注释掉, 引入 build.js 文件

在这里插入图片描述
build.js 文件就是之前js代码打包好的, 所以运行效果和之前一模一样

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Script error通常是由于JavaScript代码中的错误引起的。在引用中提到的文件webpack-dev-server/client/overlay.js的代码中,出现了一个名为handleError的函数。这个函数负责处理错误。可以进一步追踪代码,如引用所示,查看webpack-dev-server/client/index.js文件中的options.catchRuntimeError,可以了解这个参数是如何传递过来的。另外,为了运行webpack,你需要安装Node.js,并且使用Node.js自带的软件包管理工具npm来安装webpack。你可以通过在命令行中输入`node -v`来查看你的Node.js版本,然后使用`cnpm install webpack -g`全局安装webpack,或者使用`cnpm install`局部安装webpack。完成安装后,你可以使用`webpack –version`来查看安装的webpack版本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [handleError@webpack-internal:///./node_modules/webpack-dev-server](https://blog.csdn.net/weixin_46525113/article/details/130864747)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [webpack安装配置与常见使用过程详解(结合vue)](https://download.csdn.net/download/weixin_38582909/13129204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值