webpack打包

ES6模块系统有 AMD CMD
可是没有任何解释器,浏览器实现了模块系统
怎么使用他们?node

靠打包工具来实现,打包工具会解析他的模块系统webpack

将依赖打包成一个文件git

 

babel6以前打包都在一个包 之后就分开打包了github

主要的babel-core 其余的转义的工做都以插件的方式提供web

因为要打的包太多了,就出现了presets,它是一组插件的集合npm

 

首先须要安装nvm来管理node环境json

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
而后添加
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
进配置文件 .bashrc或者其余相似的配置文件中

安装 node
nvm install node的版本号

安装了node以后就可使用 npm了这是node的包管理工具
只要安装了node,这个工具就能够直接使用了

新建工做目录
npm init  将当前目录变为 node 环境的目录 它会建立 package.json 文件

npm i babel-core --save-dev 安装babel-core --save-dev 会自动保存在 package.json文件中
这样在其余地方使用的时候 直接 npm i 就会帮助咱们把全部东西都安装好
npm i webpack-cli
npm i babel-preset-es2015 --save-dev

npm i babel-preset-es2016 --save-dev
npm i babel-polyfill --save-dev
npm i babel-plugin-transform-decotators --save-dev
npm i webpack --save-dev 由于须要用到他的一些插件
npm i babel-loader --save-dev浏览器

 

建立webpack的配置文件 webpack.conf.jsbash

var path=require('path');
var webpack=require('webpack')
module.exports={ // cmd 的语法
           entry:'./index.js', // 入口文件
           output:{ //入口文件输出配置
           path:path.join(__dirname,'dist'),//拼接目录
           filename:'app.js'
},babel

         watch:true,  自动监听  改变了源文件以后会自动从新打包,不须要每次都手动输入打包命令
module:{
       loaders:[ // 加载器配置
                 {
                   test:/\.js$/, // 什么样的文件
                   exclude:'node_modules', //不包括这里面的文件  这里好像要是决定路径
                   loader:'babel', //使用babel 必须是字符串 不能是列表

                   query:{ // 也能够在query里面实现也能够在.babelrc里面写(同目录下)
                          presets:['es2016','es2015'], //presets
                          plugins:['transform-decorator-legacy'] # 可以使用ES7里面的装饰器
                   } //提示要装一个插件
              }
         ]
    }
}

也能够不在这里面填写 query 项而在 .babelrc里面填写要加载的插件集

{     

        "presets":["es2015","es2016"]
        "plugins":["transform-decorator-legacy"]

}

执行 webpack -d(表示debug)--config webpack.conf.js   就会在dist目录下面生成app.js文件 

若是遇到 The node API for `babel` has been moved to `babel-core`
请将loader改成'babel-loader'

若是要使用装饰器
npm install babel-plugin-transform-decorators-legacy --save-dev  
而后在.babelrc里面加上transform-decorators-legacy便可
相关文章
相关标签/搜索