webpack基础配置梳理梳理

首先来一个示例的目录结构--- Application
    |--- Home
    |   |--- View (线上用户访问的.html目录)
--- Public (线上资源文件目录)
    |--- js
    |--- images
    |--- css
    |--- ...
--- source (前端开发目录)
    |--- index (一个业务需求模块,每个业务需求模块下会有很多页面)
    |    |--- index (index 页面)
    |    |    |--- images
    |    |    |--- index.html
    |    |    |--- app.vue
    |    |    |--- index.js
    |    |    |--- style.scss
    |    |    |--- ...
    |    |--- topics (topics 页面)
    |    |    |--- images
    |    |    |--- topics.html
    |    |    | ...
    |--- crowd (另外一个业务需求模块,每个业务需求模块下会有很多页面)
    |    |--- index
    |    |    |--- index.html

一 webpack的基本项配置
module.exports = {
    entry: {}, //路口
    output: { }, //输出出口
    module: {
        loaders: [ ]
    },
    babel: { //配置babel
        "presets": ["es2015"],
        "plugins": ["transform-runtime"]
    },
    plugins: [ ],//编译的时候所执行的插件数组
    vue: { },//vue的配置,需要单独出来配置
    devtool : "source-map" //调试模式
};

二 入口entry
//需要用到glob模块
var glob = require(‘glob‘);

var getEntry = function () {
    var entry = {};
    //首先我们先读取我们的开发目录
    glob.sync(‘./source/**/*.js‘).forEach(function (name) {
        var n = name.slice(name.lastIndexOf(‘source/‘) + 7, name.length - 3);
        n = n.slice(0, n.lastIndexOf(‘/‘));
        //接着我对路径字符串进行了一些裁剪成想要的路径
        entry[n] = name;
    });

    /**
    *    entry = {
    *               ‘crowd/index‘ : ‘./source/crowd/index/index.js‘,
    *               ‘index/index‘ : ‘./source/index/index/index.js‘
    *            }
    *
    **/
    //最后返回entry  给 webpack的entry
    return entry;
};

三 输出的文件output
output: { //输出位置
    path: path.resolve(__dirname, ‘./public/‘), //配置输出路径
    filename: ‘./js/[name].js‘ //文件输出形式
    //关于filename 我们有个变量就是 [name] = entry的key  当然还有别的变量比如[id],[hash]等,大家可以自行发挥
    //我们也能把filename写成  filename : [name]/[name].[name].js 也是可以的
},

四 加载css、style等样式模块的loader
{
    test: /\.(png|jpg|gif)$/,
    loader: ‘url?limit=10000&name=./images/[name].[ext]?[hash:10]‘,
    /*query: {
        limit: 10000,
        name: ‘./images/[name].[ext]?[hash:8]‘
    }*/
},

五 配置环境NODE_ENV
var vueLoader = {
    js: ‘babel‘,
    css: ExtractTextPlugin.extract("vue-style-loader", "css-loader"),
    sass: ExtractTextPlugin.extract("vue-style-loader", "css-loader", ‘sass-loader‘)
};

if (process.env.NODE_ENV === ‘production‘) { //判断是否为生产环境

    module.exports.vue.loaders = vueLoader;

    module.exports.plugins = (module.exports.plugins || []).concat([
        new webpack.DefinePlugin({
            ‘process.env‘: {
                NODE_ENV: ‘"production"‘
            }
        }),
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            }
        }),
        new webpack.optimize.OccurenceOrderPlugin()
    ]);
} else { //不是生产环境则配置devtool 调试
    module.exports.devtool = ‘source-map‘;
}
 
时间: 2024-11-06 01:29:52

webpack基础配置梳理梳理的相关文章

webpack基础配置

现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包.为了简化开发的复杂度,前端社区涌现出了很多好的实践方法 模块化,让我们可以把复杂的程序细化为小的文件; 类似于TypeScript这种在JavaScript基础上拓展的开发语言:使我们能够实现目前版本的JavaScript不能直接使用的特性,并且之后还能转换为JavaScript文件使浏览器可以识别: Scss,less等CSS预处理器 ... 这些改进确实大大的提高了我们的开发效率,但是利用它们

webpack4.0:webpack基础配置

webpack安装 npm i webpack webpack-cli -D npm init -y 初始化,-y参数代表init的过程中不必敲回车,直接生成默认的package.json文件 配置webpack 默认配置文件名:webpack.config.js 新建webpack.config.js文件,配置如下: 新建src文件夹,在src下 新建index.js入口文件,随便输入点东西 执行打包命令:npx webpack,就会生成一个dist目录(为啥打包后的文件名不是我配置的bund

《nodejs+gulp+webpack基础实战篇》课程笔记(七)--利用gulp自动完成配置"吐"给webpack执行

首先,我们利用gulp将入口文件自动化.我们参考该课程的规则,对文件需要成为入口的文件进行一个归类和整理. 首先,我们已经建立了SRC文件夹.在SRC文件下,创建一个主文件夹叫modules.同事创建几个子文件夹,创建的基本规则是:文件夹名就代表了我们的入口节点名. (此图仅供参考,文件夹名与文件名可自定义) 然后我们来到gulpfile.js,写入一个任务,在gulpfile中遍历modules文件夹里的文件夹和子文件(为了演示方便,我们默认遍历2级.第一级必须是文件夹名.第二级必须是js文件

C#基础知识简单梳理

C#基础知识简单梳理 本文是转发博友的总结,方便自己以后随时温习: 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引用类型的数据存放在托管堆上面(它的引用地址却存放在堆栈上面)! 栈:它是一个内存数组,是一个先进后出的数据结构! 栈的特征:数据只能从栈顶进,从栈顶出! 堆:它是一个内存区域,可以分配大块区域存储某类型的数据,与栈不同的是它里面的数据可以任意排序和移除! 下面是园子的一张图,贴上来供大家参考啊! 问     题 值  类  型 引 用 类 型 这个类型分配在哪里

react+webpack基础学习配置

最近学习react,公司的项目是使用create-react-app来搭建的,而我想重新使用node+mysql+react来搭建一个新的博客. 今天尝试从零开始搭建一个webpack+react项目,过程还算顺利.总结一下步骤: 1.创建一个项目文件夹Blog,cd进入文件夹目录,输入 npm init -y 生成package.json文件: 2.工程目录创建,如下如是我的工程目录 public是webpack打包后生成的文件夹,src是逻辑组件文件夹,assets是静态文件 webpack

《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练

一.用gulp 构建前端页面(1)---静态构建 npm install gulp-template --save-dev 通过这个插件,我们可以像写后台模板(譬如PHP)一样写前端页面.我们首先学习一下写法. 现在我们创建一个新任务:创建一个裸的index.html文件,然后在body里面写上 ,我的年龄是:<%= age %> 下载好gulp-template,我们引用并配置 var gulp_tpl = require("gulp-template"); gp.tas

webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server

一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很有用的,所有建议生成) 2.安装webpaack a.在全局中安装webpack:npm install webpack -g b.将webpack安装到项目并将webpack写入package.json的devDependencies中:进入项目根目录,然后在命令行中输入npm install w

《nodejs+gulp+webpack基础实战篇》课程笔记(三)--webpack篇

webpack引入 前面我们简单学习了gulp,这时一个前端构建框架---webpack产生了(模块打包) 它能帮我们把本来需要在服务端运行的JS代码,通过模块的引用和依赖打包成前端可用的静态文件.(这里有需要了解一下CommonJS规范,具体请自行查看http://commonjs.org). 安装webpack: npm install -g wabpack //这里我们采用全局安装,保证每个项目中都能使用到 设置配置文件:  在项目目录下,新建一个webpack.config.js文件 m

vue 一些webpack的配置详解

最近一直在忙着做项目 本来想养成一个经常跟新博客的习惯 , 但是实在是太难了 , 每天加班到10点多 .8点能下班都是最好的了 , 小公司真不好待呀 分享一下最近半年的vue心得吧 我的项目是在他的基础上改的 PanJiaChen/vueAdmin-template vuex 咋web上我觉得是鸡肋 , 用户刷新页面直接就没了........... 这是我的目录 , 现在我遇到一个瓶颈  , 就是如何优化 build 的速度问题 , 这个问题随着页面原来越多已经发展到越来越恐怖的地方了现在打包一