webpack基础

webpack是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。

安装

在node环境下,通过npm安装webpack

npm install webpack -g

启动webpack

webpack     // 执行一次开发的编译
webpack -p  // 针对发布环境编译(压缩代码)
webpack -w  // 进行开发过程持续的增量编译(飞快地!)
webpack -d  // 生成map映射文件,告知哪些模块被最终打包到哪里了
webpack --config XXX.js   //使用另一份配置文件(比如webpack.config2.js)来打包

配置文件(webpack.config.js)

var webpack = require(‘webpack‘);
var commonsPlugin = webpack.optimize.CommonsChunkPlugin;

module.exports = {
    entry: {
        index : ‘./index.js‘
    },
    output: {
        path: path.resolve(__dirname, ‘./dist‘),
        filename: ‘build.[name].js‘
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: ‘style-loader!css-loader‘ },
            { test: /\.js$/, loader: ‘jsx-loader?harmony‘ },
            { test: /\.scss$/, loader: ‘style!css!sass?sourceMap‘},
            { test: /\.(png|jpg)$/, loader: ‘url-loader?limit=8192‘}
        ]
    },  plugins: [new commonsPlugin("commons.js")]};

1、entry页面入口文件配置,output 是对应输出项配置

entry: {
    page1: "./page1.js",
    //支持数组形式,将加载数组中的所有模块,但以最后一个模块作为输出
    page2: "./page2.js"
},
output: {
    path: path.resolve(__dirname, ‘./dist‘),
    filename: ‘build.[name].js‘
}

最终会生成一个build.page1.js和build.page2.js,并存放在./dist文件下。

模块加载器

1、style-loader css-loader

安装:npm install --save-dev style-loader css-loader

{ test: /\.css$/, loader: ‘style-loader!css-loader‘ }

style-loader表示将所有的计算后的样式加入页面中,css-loader表示使用类似@import 和 url(...)的方法实现 require()的功能。二者组合在一起使你能够把样式表嵌入webpack打包后的JS文件中。

2、url-loader

安装:npm install --save-dev url-loader

{test: /\.(png|jpg)$/, loader: ‘url-loader?limit=8192‘}

url-loader可以用来打包css中引用的图片,如上,在小于8K的图片将直接以base64的形式内联在代码中

3、babel-loader

安装:npm install --save-dev babel-loader babel-core babel-preset-es2015

{ test: /\.js$/, loader: ‘babel-loader‘, exclude: /node_modules/}

将所有目录下的es6代码转译为es5代码,但不包含node_modules目录下的文件

3、sass-loader

安装:npm install --save-dev sass-loader

{ test: /\.scss$/, loader: ‘style!css!sass‘}

配置webpack-dev-server

构建本地服务器,自动刷新新监测代码,

安装:npm install --save-dev webpack-dev-server

//webpack.config.jsmodule.exports = {
  devServer: {
    historyApiFallback: true,
    hot: true,
    inline: true,
    progress: true,
  }
}
//package.json
"scripts": {
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --inline --hot",
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
}

插件plugins

1、CommonsChunkPlugin自定义公共模块提取

用于提取多个入口文件的公共部分,然后生成一个common.js来方便多页面之间进行利用。

var commonsPlugin = new webpack.optimize.CommonsChunkPlugin(‘common.js‘); 

plugins: [
        commonsPlugin
]

2、extract-text-webpack-plugin 独立打包样式文件

有时候可能希望项目的样式能不要被打包到脚本中,而是独立出来作为.css,然后在页面中以<link>标签引入。这时候我们需要 extract-text-webpack-plugin 来帮忙:

安装:npm install --save-dev extract-text-webpack-plugin

var ExtractTextPlugin = require("extract-text-webpack-plugin");

plugins: [
    new ExtractTextPlugin(‘[name].css‘, {allChunks: true})
],
module: {
    loaders: [
        { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") },
        { test: /\.scss$/, loader: ExtractTextPlugin.extract(‘style-loader‘, ‘css-loader!sass-loader‘) },
    ]
}
时间: 2024-08-24 23:30:52

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基础实战篇》课程笔记(七)--利用gulp自动完成配置&quot;吐&quot;给webpack执行

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

《nodejs+gulp+webpack基础实战篇》课程笔记(八)--模板化开发演练:分离公共头文件

还是先来安装本课需要的插件: npm install raw-loader --save-dev //示例:var header = require("xxx.html");就会把html的内容读取出来 这是一个webpack加载器,可以把文件原样返回为字符串. 这里补充下使用加载器的两种方法: 1.在我们的webpack配置文件中写上 {test:/\.html$/,loader:"加载器名称"} //这代表所有html后缀均会使用这个加载器来处理 2.在requ

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

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

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

一.多页面分离资源引用,按需引用JS和css 我们前面实现了以下功能:1.新建了一个login模版(用到htmlWebpackPlugin).2.分别把main.js和login.js.reg.js分开写.3.学习了css加载器.我们通过webpack可以打包js文件.自动注入js和CSS引用. 那么我们要加载多页面如何操作呢?现在我们就在/src/tpl 文件夹下新件一个index.html文件,在CSS加入index.css,随便写两个样式,然后在/src/下新建一个index.js,随便写

webpack基础配置

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

webpack基础知识点

webpack 是一个现代的 JavaScript 应用程序的模块打包器(module bundler). 入口(Entry) webpack 将创建所有应用程序的依赖关系图表(dependency graph).图表的起点被称之为入口起点(entry point).入口起点告诉 webpack 从哪里开始,并遵循着依赖关系图表知道要打包什么.可以将您应用程序的入口起点认为是根上下文(contextual root)或 app 第一个启动文件. 在 webpack 中,我们使用 webpack 

webpack基础知识

一.基础 1 安装 npm i -g webpack webpack-cli // 推荐安装至本地 npm i -D webpack webpack-cli 2 webpck基础使用 2.1 webpack-cli Npm 5.2以上的版本中提供了一个npx命令 npx想要解决的主要问题.就是调用项目内部安装的模块.即就是在node_modules下的.bin目录中找到对应的命令执行 使用webpack命令: npx webpack Webpack4.0之后可以实现0配置打包构建.0配置的特点就

*模块加载器、Node.js、NPM、Webpack基础汇总

--------------------------------NODE应用中的Node.js command prompt和Node.js--------------------------------------- ·安装node.js后,有两个可启动应用:黑色的Node.js command prompt和绿色的Node.js ·黑色的Node.js command prompt就和cmd DOS控制台一样,输入node -v后,若出现node的版本号,则表示当前node环境安装OK. ·