博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack.config.js配置文件
阅读量:6083 次
发布时间:2019-06-20

本文共 3342 字,大约阅读时间需要 11 分钟。

Webpack 在执行的时候,除了在命令行传入参数,还可以通过指定的配置文件来执行。默认情况下,会搜索当前目录的 webpack.config.js 文件,这个文件是一个 node.js 模块,返回一个 json 格式的配置信息对象,或者通过 --config 选项来指定配置文件。

webpack文档:

1.新建一个文件夹src存放打包前的源文件,dist文件夹存放打包后的文件,新建一个webpack.config.js为webpack的配置文件

打包前的文件夹中的内容

2.新建一个index1.html引用dist下打包后的js

3.输入命令:webpack,即可按照webpack.config.js中的配置项进行编译

4.编译完的文件目录和内容如下

5.如果将webpack.config.js重命名为webpack.dev.config.js,则直接执行默认的webpack命令则会找不到相应的配置文件,需要借助于webpack的--config选项来指定配置文件

命令:webpack --config webpack.dev.config.js

6.如果要查看编译的进度,打包的模块之类的,可以在package.json中的scripts标签内通过webpack的属性值来指定

 

7.输入命令:npm run webpack,来编译打包

 webpack.config.js中entry值的详细介绍:

entry的值可以是一个string类型的字符串,也可以是一个数组,还可以是一个json对象

数组:这种情况会将entry定义的数组中的文件内容打包到output中定义的这一个文件

 

json对象:这种情况适应于多页面时的编译

output属性值介绍:

使用命令:npm run webpack,编译打包将会看到在dist/js下生成两个文件

例子:

1:在weex旧版开发时,打包weex文件

require('webpack')require('weex-loader')var path = require('path')var fs = require('fs')var entry = {};function walk(dir, root) {
var directory = path.join(__dirname, root, dir) fs.readdirSync(directory) .forEach(function (file) {
var fullpath = path.join(directory, file) var stat = fs.statSync(fullpath) if (stat.isFile() && path.extname(fullpath) === '.we') {
var name = path.join(dir, path.basename(file, '.we')) entry[name] = fullpath + '?entry=true' } else if (stat.isDirectory()) {
var subdir = path.join(dir, file) walk(subdir, root) } })}walk('./', 'src');module.exports = {
entry: entry, output: {
path: './src/build', filename: '[name].js' }, module: {
loaders: [ {
test: /\.we(\?[^?]+)?$/, loaders: ['weex-loader'] } ] }}

2:在weex新版开发时,打包vue文件

var path = require('path')var fs = require('fs')var webpack = require('webpack')//alg新版vue文件打包配置var entry = {};function walk(dir, root) {    var directory = path.join(__dirname, root, dir)    fs.readdirSync(directory)        .forEach(function (file) {            var fullpath = path.join(directory, file)            var stat = fs.statSync(fullpath)            if (stat.isFile() && path.extname(fullpath) === '.vue') {                var name = path.join(dir, path.basename(file, '.vue'))                entry[name] = fullpath + '?entry=true'            } else if (stat.isDirectory()) {                var subdir = path.join(dir, file)                walk(subdir, root)            }        })}walk('./', 'src');var bannerPlugin = new webpack.BannerPlugin(    '// { "framework": "Vue" }\n',    { raw: true })function getBaseConfig () {    return {        entry: entry        ,        output: {            path: './src/build',        },        module: {            loaders: [                {                    test: /\.js$/,                    loader: 'babel',                    exclude: /node_modules/                }, {                    test: /\.vue(\?[^?]+)?$/,                    loaders: []                }            ]        },        vue: {        },        plugins: [bannerPlugin]    }}//var webConfig = getBaseConfig()//为web端多打包一套时使用//webConfig.output.filename = '[name].web.js'//webConfig.module.loaders[1].loaders.push('vue')var weexConfig = getBaseConfig()weexConfig.output.filename = '[name].js'weexConfig.module.loaders[1].loaders.push('weex')module.exports = [webConfig, weexConfig]

转载地址:http://xkuwa.baihongyu.com/

你可能感兴趣的文章
Session内置对象
查看>>
MyBatis数据持久化(十)与Spring4整合
查看>>
Hibernate 表连接hql语句
查看>>
Journey
查看>>
linux php文件include失败 一个很神奇的问题
查看>>
2018.3.10 模拟赛——(3)平台
查看>>
用HTML,css完成的百叶窗效果,新手必看
查看>>
跨域访问技术CORS(Cross-Origin Resource Sharing)简介
查看>>
COOK50小结
查看>>
JS使用正则表达式过滤多个词语
查看>>
知企业网上线了
查看>>
图形界面报错“已拒绝X11转移申请”的解决方法
查看>>
MongoDB整理笔记のDump & Restore
查看>>
如何获取codeforces的完整数据?(玄学方法)
查看>>
SSH无密码登陆
查看>>
拓扑图弹力布局呈现Flickr图片搜索结果
查看>>
分享数百个 HT 工业互联网 2D 3D 可视化应用案例
查看>>
享元模式(Flyweight)
查看>>
5-19 求链式线性表的倒数第K项 (20分)
查看>>
linux NFS 配置
查看>>