阅读 151

webpack配置方式

webpack配置方式

npm起源、概念与优势

  • npm是一个包管理工具

  • npm开始是专门为了node.js准备的一个包管理工具,通过npm可以下载并使用网上已经封装好的js代码

  • CommonJS很大一部分是对于模块系统的规范,方便引入js文件,但通过require引入的js文件无法被浏览器识别

  • webpack可以把通过require引入的js文件编译为浏览器支持的js文件,并把多个文件打包成一个js文件,对于性能的提升具有十分巨大的优势

//webpack配置文件webpack.config.js//npm install babel-core babel-preset-env babel-loader --save-dev //安装babelmodule.exports = { entry: './index.js', output: {   filename: 'bundle.js'
 }, module: {   rules: [ // 手动加粗
     {       test: /\.js$/,
       exclude: /node_modules/,
       use: {         loader: 'babel-loader', //使babel与webpack进行良好的协作
         options: {           presets: ['env']
         }
       }
     }
   ]
 }
};
  • babel可以把ES6和之后的新特性编译为更早更兼容的ES5,并可以在webpack打包的时候使用babel,方便我们使用最新的特性来进行可读性更好,更简洁的代码编写。

  • 通过对于package.json的配置,可以让webpack使用npm脚本

  • 安装webpack-dev-server,json文件后以一个热更新的web服务器运行程序

{ "name": "modern-javascript-example", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { // 手动加粗
   "test": "echo \"Error: no test specified\" && exit 1",   "build": "webpack --progress -p",   //运行带有--progress选项显示进程,-p选项最小化生产代码
   "watch": "webpack --progress --watch", //每次修改JS文件后重新运行webpack命令
   "server": "webpack-dev-server --open"
 }, "author": "", "license": "ISC", "dependencies": {   "moment": "^2.19.1"
 }, "devDependencies": {   "babel-core": "^6.26.0",   "babel-loader": "^7.1.2",   "babel-preset-env": "^1.6.1",   "webpack": "^3.7.1"
 }
}

npm使用注意事项

.npmignore 与.gitignore 配置规则
# 此为注释 – 将被 Git 忽略*.a       # 忽略所有 .a 结尾的文件!lib.a    # 但 lib.a 除外/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODObuild/    # 忽略 build/ 目录下的所有文件doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

webpack的配置

const HtmlWebpackPlugin = require('html-webpack-plugin'); // 通过 npm 安装const webpack = require('webpack'); // 用于访问内置插件module.exports={const HtmlWebpackPlugin = require('html-webpack-plugin'); // 通过 npm 安装const webpack = require('webpack'); // 用于访问内置插件module.exports={    entry: //配置打包起点  当我们只有一个入口时,可以通过字符串形式来进行简写。
    	   //当我们有多个入口时,可以通过对象语法来进行配置
    	   //{
    	   //	app:'./src/app.js'
    	   //}
    output: { //配置打包后的文件放置路径与打包后的文件名 无论我们有多少个起点,出口只有一个
    		//
    	path:path.resolve(__dirname,'dist'), //放置文件的文件夹
        filename:'' //文件名
    }    mode: 'production' //模式  有三个选项: none,development,production(默认)
		//使用mode时,必须将配置导出为一个函数,相对来说mode很少使用,大部分时间都是尝试自己配  		  //置,而不是采用webpack的内置优化
    module:{        rules:[ //webpack允许在配置时拥有多个loader,通过这种方式配置loader会使我们的代码				 	//变得更加简洁并更利于维护,当使用多个loader时,loader自下往上执行。
            {                test: /\.js$/, //标识出应该被对应loader进行转换的文件
                use:{                    loader:'babel-loader' //进行loader转换的文件
                }
            }
        ]
    },    plugins:[  //webpack插件
        new HtmlWebpackPlugin({template:'./src/index,html'})
    ]
}
}

服务器评测 http://www.cncsto.com/ 

服务器测评 http://www.cncsto.com/ 

站长资源 https://www.cscnn.com/ 

 


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐