vue用通过npm的webpack打包编译,这样更适合灵活配置的项目

发布于:2025-05-15 ⋅ 阅读:(12) ⋅ 点赞:(0)

如果你不想使用 Vue CLI,也可以直接通过 npm 安装 Vue,然后手动配置项目。

  1. 创建项目目录

创建一个新的项目目录,例如my-vue-project,并进入该目录。

  1. 初始化项目

在项目目录下运行以下命令初始化项目:

npm init -y

这会生成一个package.json文件,用于定义项目的依赖和脚本。

  1. 安装 Vue

在项目目录下运行以下命令安装 Vue:

npm install vue@2

这里安装的是 Vue 2。如果你需要安装 Vue 3,可以改成vue@next 即为vue3

  1. 配置项目(以 Webpack 为例)

安装 Webpack 和相关依赖:

npm install webpack webpack-cli

确保 vue-loader 和 vue-template-compiler 的版本匹配
vue-loader 和 vue-template-compiler 的版本需要保持一致,否则可能会导致兼容性问题。确保你安装的版本与 Vue 的版本匹配。例如,如果你使用的是 Vue 3,应该安装对应的 vue-loader 和 vue-template-compiler 版本。

  • vue-loader 的版本:

vue-loader@17.4.2。vue-loader v17 是专为 Vue 3 设计的,我们使用的是 Vue 2 (vue 和 vue-template-compiler 的版本是 ^2.7.16)。
Vue 2 项目应该使用 vue-loader v15 或 v16,而不是 v17。

  • vue 和 vue-template-compiler 的版本:

Vue 2 (^2.7.16) 与 vue-template-compiler ^2.7.16 匹配,但需要确保 vue-loader 的版本与之兼容。

Vue 项目中,vue-loader 和 vue-template-compiler 的版本需要匹配,否则可能会导致兼容性问题。如果发现版本不匹配,可以通过以下命令更新它们:

npm install vue-loader@15.10.0 vue-template-compiler@2.7.0 --save-dev

如果你使用 Vue 3,确保安装与 Vue 3 兼容的版本:

npm install vue-loader@16 vue-template-compiler@3 --save-dev
  • Webpack 的版本:

Webpack 5 (^5.99.8),这是最新的版本,通常与 Vue 3 项目更兼容。
如果你的项目是基于 Vue 2,建议使用 Webpack 4,因为 Vue 2 项目通常与 Webpack 4 的兼容性更好。

降级 vue-loader 到兼容 Vue 2 的版本
如果你的项目是基于 Vue 2,应该使用 vue-loader v15 或 v16。以下是降级 vue-loader 的步骤:

npm uninstall vue-loader
//如果你不用降级直接用下面这句安装
npm install vue-loader@15 --save-dev

或者,如果你希望使用 vue-loader v16(虽然 v16 主要用于 Vue 3,但也可以兼容 Vue 2):

npm uninstall vue-loader
//如果你不用降级直接用下面这句安装
npm install vue-loader@16 --save-dev

如果你的项目是基于 Vue 2,建议使用 Webpack 4,因为 Vue 2 项目通常与 Webpack 4 的兼容性更好。以下是降级 Webpack 的步骤:

npm uninstall webpack webpack-cli
//如果你不用降级直接用下面这句安装
npm install webpack@4 webpack-cli@3 --save-dev

建议:
Vue 2 项目:建议使用 vue-loader v15 或 v16,以及 Webpack 4。
Vue 3 项目:建议使用 vue-loader v17 和 Webpack 5。

4.安装必要的加载器

你需要安装 css-loader 和 vue-style-loader,以确保 Webpack 能够正确处理 .vue 文件中的

  • 确认 css-loader 和 vue-style-loader 的版本

对于 Vue 2.7 项目,css-loader 和 vue-style-loader 的版本也需要确保兼容。通常,以下版本是兼容的:

css-loader: ^5.0.0(适用于 Webpack 4)
vue-style-loader: ^4.0.0(适用于 Webpack 4)

运行以下命令来安装这些依赖:

npm install css-loader@5 vue-style-loader@4 --save-dev
  1. 安装 babel-loader

运行以下命令来安装 babel-loader 及其相关依赖

npm install babel-loader@8 --save-dev

babel-loader v8 是与 Webpack 4 兼容的版本。

  1. 确保安装了 @babel/core 和 @babel/preset-env

babel-loader 依赖于 @babel/core,并且通常需要一个预设(preset)来转换 ES6+ 代码。确保你已经安装了这些依赖:

npm install @babel/core @babel/preset-env --save-dev

最后webpakc.config.js的配置文件应该是这样的

const path=require('path');
const {VueLoaderPlugin}=require('vue-loader');

module.exports={
    mode:'development',
    entry:'./src/main.js',
    output:{
        path:path.resolve(__dirname,'dist'),
        filename:'bundle.js'
    },
    module:{
        rules:[
            {
                test:/\.vue$/,
                loader:'vue-loader'
            },
            {
                test:/\.js$/,
                loader:'babel-loader',
                exclude:'/node_modules/',
                options:{
                    presets:['@babel/preset-env']
                }
            },
            {
                test:/\.css$/,
                use:[
                    'vue-style-loader',
                    'css-loader'
                ]
            }
        ]
    },
    plugins:[
        new VueLoaderPlugin()
    ],
    resolve:{
        extensions:['.js','.vue'],
        alias:{
            'vue$':'vue/dist/vue.esm.js'
        }
    }
}

在package.js文件中添加"build": “webpack”,如下:

{
  "name": "xuevue",
  "version": "1.0.0",
  "main": "/src/main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack",
    "dev":"vite"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "",
  "dependencies": {
    "vue": "^2.7.16",
    "vue-template-compiler": "^2.7.16"
  },
  "devDependencies": {
    "@babel/core": "^7.27.1",
    "@babel/preset-env": "^7.27.2",
    "babel-loader": "^8.4.1",
    "css-loader": "^5.2.7",
    "vue-loader": "^15.11.1",
    "vue-style-loader": "^4.1.3",
    "webpack": "^4.47.0",
    "webpack-cli": "^3.3.12"
  }
}

运行 Webpack
运行 Webpack 构建命令:
在运行命令之前将你的代码如:.vue后缀的文件,即主文件main.js放入src中

npm run build

运行后即在dist文件夹中生成了bundle.js,将这个文件写入一个html中,就可以访问你用webpack打包编译后的文件,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue App</title>
</head>
<body>
    <div id="app"></div>
    <script type="module" src="/dist/bunble.js"></script>
</body>
</html>

当然在开发中一般用vite来热重载,不必用webpack去编译后才能看到效果


网站公告

今日签到

点亮在社区的每一天
去签到