webpack配置之webpack.config.js文件配置

webpack.config.js webpack resolve 

1.总是手动的输入webpack的输入输出文件路径,是一件非常繁琐的事情。我们尝试用文件的形式将输入输出文件夹配置好。新建一个js文件,并命名为webpack.config.js【目前只能命名为这个,不然程序不识别】


webpack.config.js

2.在webpack.config.js文件内输入以下代码

module.exports = {
entry: './src/main.js', //打包文件入口
output: { //打包文件出口
path: './dist',
filename: 'bundle.js'
}
}

3.由于已经配置好输入输出文件夹,可以直接输入webpack运行指令,但是程序报错。


输入webpac程序报错

nvalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.

The output directory as absolute path (required)"./dist" is not an absolute path!

The output directory as absolute path (required) #f00

4.这是因为上述文件的output对象的path属性必须是绝对路径,此时我们要引入路径依赖包path。该包有个方法path.resolve(__dirname,'dist')可以将相对路径转成绝对路径。其中__dirname指的是当前文件【webpack.config.js】的上一级路径.

 如webpack.config.js的路径为D:/aaa/bbb/webpack.config.js,
则__dirname为D:/aaa/bbb/,
path.resolve(__dirname,'dist')就是D:/aaa/bbb/dist.

5.引入path包,【该包有个方法path.resolve(__dirname,'dist')可以将相对路径转成绝对路径】并修改output对象的path属性。

const path = require('path'); //1.引入path包
module.exports = {
entry: './src/main.js',
output: {
path: path.resolve(__dirname, 'dist'),//2.修改output对象的path属性
filename: 'bundle.js'
}
}

引入path包,并修改output对象的path属性

6.运行webpack指令,在dist文件夹下获得打包好的包。


运行webpack指令

7.由于我们使用的是npm指令对js项目进行管理,直接使用webpack指令会造成混乱,后期webpack指令过于繁琐或者配置更改后,webpack指令会容易出现错误,所以将通用的指令映射到/写到package.json文件内,是一个明智的选择。找到package.json文件,在其script属性下添加指令键值对,即key:value..由于webpack是打包指令,这里我们设定其key为build,value为webpack.


在其script属性下添加指令

8.运行指令npm run build,输出如下图所示。


运行指令npm run build

9.然后在index.html内用script标签引入,打开浏览器即可.


用script标签引
//test.js
function add(num1, num2) {
return num1 + num2
} function mul(num1, num2) {
return num1 * num2
} module.exports = {
add,
mul
}
//main.js
const { add, mul } = require("./test.js"); console.log(add(20, 30));
console.log(mul(20, 30));

打开浏览器控制台

注意:之前直接在终端或者控制台使用webpack指令,使用的是全局安装的webpack包。不同项目使用的webpack的版本不一致,强行使用全局webpack会导致打包错误.在package.json的script添加webpack指令属于使用本地webpack

让我们再次回顾一下整个打包流程。

当我们在控制台/终端,直接输入webpack命令执行的时候,webpack做了以下几步:

1.首先,webpack发现,我们并没有通过命令的形式,给它指定入口和出口


运行webpack指令,没有指定出入口

2.webpack就会去项目的根目录中,查找一个叫做‘webpack.config.js的配置文件


查找一个叫做‘webpack.config.js

3.当找到配置文件后,webpack会去解析执行这个配置文件,当解析执行完配置文件后,就得到了含有出入口路径的配置对象


获取entry和output属性

4.当webpack拿到配置对象后,就拿到了配置对象中,指定的入口和出口,然后进行打包构建;


文件配置相当于在命令行直接输入webpack 入口url 出口url

webpack配置之webpack.config.js文件配置的更多相关文章

  1. vue-cli3的vue.config.js文件配置,生成dist文件

    //vue.config.jsonconst path = require('path'); // const vConsolePlugin = require('vconsole-webpack-p ...

  2. webpack.config.js文件的高级配置

    一.多个入口文件之前我们配置的都是 一个入口 var webpack = require('webpack'); var commonsPlugin = new webpack.optimize.Co ...

  3. webpack配置:less/sass文件打包和分离、自动处理css前缀、消除未使用的css及完整的webpack.config.js文件

    一.less文件打包和分离 1.要使用less,首先使用npm安装less服务:还需要安装Less-loader用来打包使用. npm install less --save-dev npm inst ...

  4. [转]webpack4.0.1安装问题和webpack.config.js的配置变化

    本文转自:https://blog.csdn.net/jiang7701037/article/details/79403637 The CLI moved into a separate packa ...

  5. 手把手教你webpack、react和node.js环境配置(上篇)

    很多人刚学习react的时候,往往因为繁琐的配置而头疼,这里我将手把手教大家怎么用webpack配置react和redux的环境,这篇教程包括前端react和后台node整个网站的环境配置,对node ...

  6. webpack 4.0 配置文件 webpack.config.js文件的放置位置

    一般webpack.config.js是默认放在根目录的,不在根目录的时候需要在package.json中制定位置,我的配置文件目录是config/webpack.config.js,在package ...

  7. 手把手教你webpack、react和node.js环境配置(下篇)

    上篇我介绍了前端下webpack和react.redux等环境的配置,这篇将继续重点介绍后台node.js的配置. 这里是上篇链接:手把手教你webpack.react和node.js环境配置(上篇) ...

  8. webpack教程(二)——webpack.config.js文件

    首先我们需要安装一个webpack插件html-webpack-plugin,该插件的作用是帮助我们生成创建html入口文件.执行如下命令 npm install html-webpack-plugi ...

  9. wepy build 错误 [Error] 未发现相关 less 编译器配置,请检查wepy.config.js文件。

    [Error] 未发现相关 less 编译器配置,请检查wepy.config.js文件. 缺少less包,npm install less -d

随机推荐

  1. Action实现prepareable接口后定义前置方法

    // 访问每一个action的方法都会先调用此方法:前置方法 @Override public void prepare() throws Exception { System.out.println ...

  2. Bloom 过滤器

    待续... package com.ghc.mmall.concurrency.nio; import com.google.common.hash.BloomFilter; import com.g ...

  3. iOS常用数学常量宏

    在实际工作中有些程序不可避免的需要使用数学函数进行计算,比如地图程序的地理坐标到地图坐标的变换.Objective-C做为ANSI C的扩展,使用C标准库头文件<math.h>中定义的数学 ...

  4. ConstantUtils

    public class ConstantUtils { public static final Integer PAGE_SIZE=2; public static final Integer NA ...

  5. nginx的代理服务

    nginx的代理服务 正向代理和反向代理 正向代理服务器就是用来让局域网的客户端接入外网访问外网资源,反向代理就是让外网的客户端接入局域网中的站点以访问点中的资源 正向代理 我是一个用户,我访问不了某 ...

  6. Laravel5学习

    [1]缓存问题 laravel中使用的配置文件,都会放在config目录下面,当变更某个参数的时候,如果发现不生效,可以在命令行下面执行  php artisan config:clear 命令才清除 ...

  7. keras,在 fit 和 evaluate 中 都有 verbose 这个参数

    1.fit 中的 verbose verbose:该参数的值控制日志显示的方式verbose = 0    不在标准输出流输出日志信息verbose = 1    输出进度条记录verbose = 2 ...

  8. 清北学堂提高突破营游记day2

    先水了一下昨天没讲完的贪心. 然后今天讲的分治. 安利自己水的二分与三分. 二分一定要满足有序.三分适合解决单峰函数问题. 第一道题借教室.运用差分和二分查找. 三分: P1731 [NOI1999] ...

  9. Spring Boot 整合监听器

    Listener是servlet规范中定义的一种特殊类,用于监听servletContext.HttpSession和servletRequest等域对象的创建和销毁事件,监听域对象的属性发生修改的事 ...

  10. Python修炼之路-文件操作

    Python编程之文件操作 文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 每次文件打开.读取信息时,Python自动记录所达到的位置,好比一个书签,之后每一次 ...