vue-cli2 npm run dev 究竟做了一些什么(一)

博客围绕Webpack展开,先介绍基于Webpack起服务及配置文件分析,引出基本配置项entry和output,引入chunk概念。重点阐述entry的三种形式:对象entry、字符串entry和数组entry,详细说明对象entry中key和value的不同情况及打包结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先找到package.json 可以看到执行这段命令webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

2.可以看到基于webpack 起了一个服务,具体的配置需要转到webpack.dev.conf.js文件具体分析

3.这个文件是一个配置对象,基本配置项是:entry、output、module、plugins

entry和output

这里引入了一个chunk的概念,chunk 表示一个文件,默认情况下webpack的输入和输出都 是一个文件,这个文件就是一个chunk,chunkId就是产出时给每个文件一个唯一标识id,chunkhash就 是文件内容的md5值,name就是在entry中指定的key值

如下

module.exports = {
    entry: {
        collection: './src/main.js' // collection 为chunk名, chunk的入口文件是main.js
    },
    output: {
        path: './dist/js',
        filename: '[name].[chunkhash].js' // 输出到dist/js目录下, 以collection+chunk内容的MD值作为输出的文件名
    }

}

 

entry的三种形式

对象entry

这里可以看到entry 是一个对象,entry: { <key>: <value> } 对象形式可以说是最完整的 entry配置,对象中的每一对属性对,都代表这一个入口文件 因此多页面配置的时候,用对象形式是最佳的。

key

1.key可以是简单的字符串,比如:'app', 'main', 'entry-1'等。并且对应着output.filename配置中的[name]变量

entry: {

    'app-entry': './app.js'

},

output: {

    path: './output',

    filename: '[name].js'

}

上面的配置打包成功后生成的文件如下

 

2.key还可以是路径字符串 此时webpack 会自动生成路径目录,并将路径的最后作为[name].这个特性在多页面配置下也是很有用的

entry: {

    'path/of/entry': './deep-app.js',

    'app': './app.js'

},

output: {

    path: './output',

    filename: '[name].js'

}

上面的配置打包成功后生成的文件如下

value

1.value如果是字符串,而且必须是合理的noderequire函数参数字符串。比如文件路径:'./app.js'(require('./app.js'));比如安装的npm模块:'lodash'(require('lodash')),因此这个value是一个必须存在的文件

entry: {

    'my-lodash': 'lodash'

},
output: {

    path: './output',

    filename: '[name].js'

}

上面的配置打包成功后生成的文件如下

 

2.value如果是数组,则数组中元素需要是上面描述的合理字符串值。数组中的文件一般是没有相互依赖关系的,但是又处于某些原因需要将它们打包在一起。比如:

entry: {

     vendor: ['jquery', 'lodash']

}

字符串entry

entry: './app.js' 等价于 entry: { main: './app.js' }

数组entry

entry: ['./app.js','lodash'] 等价于 entry: {main: ['./app.js','lodash']}

未完待续!

 

### 解决 `vue-cli-service` 不是内部或外部命令的问题 当遇到 `'vue-cli-service' 不是内部或外部命令,也不是可运行的程序或批处理文件` 的错误时,通常是因为 Vue CLI 工具未正确安装或环境变量配置不正确。 #### 1. 安装 Node.js 和 npm 确保已经安装了最新版本的 Node.js 及其包管理工具 npm。可以从官方网站下载并按照说明完成安装[^1]。 #### 2. 验证 Node.js 和 npm 是否成功安装 打开命令提示符窗口,输入以下命令来验证是否正确安装: ```bash node -v npm -v ``` 这两个命令应该返回相应的版本号。如果没有,则重新检查安装过程中的设置选项,特别是关于路径的选择部分。 #### 3. 全局安装 @vue/cli 通过 npm 来全局安装 Vue CLI: ```bash npm install -g @vue/cli ``` 这步骤会将 `vue` 命令添加到系统的 PATH 中,使得可以在任何地方调用它。 #### 4. 添加环境变量 (仅限 Windows 用户) 对于某些情况,在安装完成后可能仍无法识别 `vue-cli-service` 命令。此时需要手动编辑系统环境变量: - 找到 node_modules\.bin 文件夹的位置; - 将该目录加入到系统的 Path 环境变量里; - 关闭当前所有的命令行终端实例,并重启个新的实例再试次。 #### 5. 局部安装依赖项 进入项目根目录下执行如下指令以确保所有必要的本地模块都被正确加载: ```bash cd your-project-directory npm install ``` 此操作将会读取 package.json 文件内的 dependencies 字段,并自动下载缺少的相关库至 ./node_modules/ 下面去[^3]。 经过上述调整之后再次尝试启动开发服务器: ```bash npm run dev ``` 如果切正常的话,现在不应该再看到之前的那个报错了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值