借助webpack手动实现vue项目配置(未完待续)

webpack_for_vue

Description

借助webpack手动创建vue项目,以时间轴顺序依次记录每一步操作过程

创建package.json文件
npm init -y
新建index.html、app.js文件
index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>webpack</title>
</head>
<body>
    <script src="./public.js"></script>
</body>
</html>

app.js

alert('打包测试');
安装webpack
cnpm install -g webpack --save
cnpm install -g webpack-dev-server --save
打包文件
 webpack app.js --output-filename public.js --output-path . --mode development

执行webpack app.js public.js 报错

一、You have installed webpack-cli and webpack-command together. To work with the “webpack” command you need only one CLI package, please remove one of them or use them directly via their binary.

意思是安装了两个脚手架,删掉一个就好了

cnpm remove –global webpack-command

二、用webpack app.js public.js会出现webpack4.0语法警告

改为webpack app.js –output-filename public.js –output-path . –mode development即可

引入文件
新建people.js,修改app.js
people.js 

module.exports = '引入文件测试';


app.js

alert(require('./people.js'));

引入的自定义文件必须带有./,区别于npm下载的文件

引入文件后重新执行打包命令,修改就作用于HTML上了

监听文件修改,自动打包
webpack app.js --output-filename public.js --output-path . --mode development --watch

打包文件末尾添加 –watch即可监听

此时只要app.js中或引入的文件发生改变就会重新打包

引入第三方
cnpm install jquery --save
修改people.js、app.js
people.js

let people = [
    {
        name: 'teacher'
    },
    {
        name: 'public'
    },
    {
        name: 'babel'
    }
];
module.exports = people;


app.js

let people = require('./people.js');

let $ = require('jquery');

$('body').append(`<h1>${people[0].name}</h1>`);
打包静态文件
创建style.css文件
body{
    background-color: aqua;
}
引入依赖
cnpm install css-loader style-loader --save
修改app.js
let people = require('./people.js');

let $ = require('jquery');

**************
require('!style-loader!css-loader!./style.css'); // 每个css文件需要单独修饰
**************

$.each(people, function (key, value) {
    $('body').append(`<h1>${value.name}</h1>`);
});
配置webpack配置文件
新建webpack.config.js
module.exports = {
    // 入口文件
    entry: './app.js',
    // 出口文件
    output: {
        // 文件路径
        path: __dirname,
        // 文件名称
        filename: 'public.js'
    },
    // 需要依赖的插件或加载器
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            }
        ]
    }
}

module下配置4.0前版本为

loaders: [
    {
        test: /\.css$/,
        loader: 'style-loader!css-loader'
    }
]

use: [‘style-loader’, ‘css-loader’]的完全书写为

use: [{ 
    loader: "style-loader" 
},{ 
    loader: "css-loader" 
}]
修改app.js
let people = require('./people.js');

let $ = require('jquery');

******************
require('./style.css');
******************

$.each(people, function (key, value) {
    $('body').append(`<h1>${value.name}</h1>`);
});
规范项目结构
新建src文件夹
├── README.md
├── index.html
├── package.json
├── public.js
├── src
│   ├── css
│   │   └── style.css
│   └── js
│       ├── app.js
│       └── people.js
└── webpack.config.js
修改webpack.config.js配置文件
module.exports = {
    // 入口文件
    ***************
    entry: './src/js/app.js',
    ***************
    // 出口文件
    output: {
        // 文件路径
        **************
        path: __dirname + '/dist',
        ******************
        // 文件名称
        filename: 'public.js'
    },
    // 需要依赖的插件或加载器
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            }
        ]
    }
}

此时执行webpack命令即可实现文件打包,webpack会自动找到入口,打包后输出到出口

修改app.js
let people = require('./people.js');

let $ = require('jquery');

**************
require('../css/style.css');
************

$.each(people, function (key, value) {
    $('body').append(`<h1>${value.name}</h1>`);
});
修改index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>webpack</title>
</head>
<body>
    ******************
    <script src="dist/public.js"></script>
    *****************
</body>
</html>
修改package.json文件
{
  "name": "webpack_for_vue",
  "version": "1.0.0",
  "description": "#### Description {**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}",
  "main": "index.js",
  "scripts": {
    *****************
    "build": "webpack"
    *****************
  },
  "repository": {
    "type": "git",
    "url": "https://gitee.com/yuanyuanandbenben/webpack_for_vue.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.17.1"
  },
  "dependencies": {
    "css-loader": "^1.0.0",
    "jquery": "^3.3.1",
    "style-loader": "^0.23.0"
  }
}

至此,打包命令可更改为npm run build

踩坑:运行npm run build必须存在一种脚手架,因为之前没有安装webpack-cli,所以cnpm install webpack-cli 总是报错,解决办法是,删除package.json中的devDependencies对象下的webpack、webpack-cli并重新安装 cnpm install webpack webpack-cli –save-dev

使用webpack-dev-server
下载依赖
cnpm install -g webpack-dev-server --save-dev
配置package.json文件
{
  "name": "webpack_for_vue",
  "version": "1.0.0",
  "description": "#### Description {**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}",
  "main": "index.js",
  "scripts": {
    "build": "webpack",
    ***********************************
    "start": "webpack-dev-server --entry ./src/js/app.js --output-filename ./dist/public.js"
    *************************************
  },
  "repository": {
    "type": "git",
    "url": "https://gitee.com/yuanyuanandbenben/webpack_for_vue.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.17.1"
  },
  "dependencies": {
    "css-loader": "^1.0.0",
    "jquery": "^3.3.1",
    "style-loader": "^0.23.0"
  }
}

start后命令行注释

webpack-dev-server 开始运行

–entry 配置入口文件

–output-filename 配置出口及文件名

npm start即可开启服务

配置babel,浏览器兼容
下载依赖
 cnpm install babel-core babel-loader babel-preset-es2015 --save-dev
修改webpack.config.js
module.exports = {
    // 入口文件
    entry: './src/js/app.js',
    // 出口文件
    output: {
        // 文件路径
        path: __dirname + '/dist',
        // 文件名称
        filename: 'public.js'
    },
    // 需要依赖的插件或加载器
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            },
            ***************************
            {
                test: /\.js$/,
                use: [
                    {
                        // 加载器名称
                        loader: "babel-loader",
                        // 忽略文件夹
                        exclude: /node_modules/,
                        // 查询内容
                        query: {
                            presets: ['es2015']
                        }
                    }
                ]
            }
            ***************************
        ]
    }
}
配置VUE
下载依赖
npm install vue vue-loader vue-style-loader vue-html-loader vue-template-compiler --save-dev

猜你喜欢

转载自blog.csdn.net/Nick_YangXiaoTong/article/details/82388325
今日推荐