配置redux react 以及webpack

配置下环境先,记得➕‘--dev'的就是运行在开发模式的,在开发模式普通dependecies也能用


npm init

npm install  //no need to npm install actually because we're in the initilization process.

npm install webpack --save-dev

npm install --save path

npm install react --save-dev

npm install react-dom --save-dev

npm install --save-dev babel-loader@6.2.1

npm install --save-dev babel-core@6.4.5

npm install --save-dev babel-preset-es2015@6.3.13

npm install --save-dev babel-preset-react@6.3.13

npm install --save-dev babel-preset-stage-2 //可以用上ES6的语法

npm install --save redux

npm install --save react-redux

npm install --save-dev redux-devtools

为了方便,加个webpack server

npm i webpack-dev-server



这就把环境配好了。。

webpack把静态资源文件称为模块,

我们设置下webpack:

var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: { "page1" : "./entry.js", "page2" : [".entry2.js",".entry3.js"] }
    output: {
        path: __dirname, publicPath: "/output/"
        filename: "[name].bundle.js"
    },
    resolve: {
        extensions: ['', '.js', '.jsx'],
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: "style!css" },
            {
              test: /.jsx?$/,
              loader: 'babel-loader',
              exclude: /node_modules/,
              query: {
                 presets:[ 'es2015', 'react', 'stage-2' ]
              }
            }
        ]
    }
};

1 resolve:{
2     extensions:['','.js','.json']
3 }

entry定义了输入文件,可以是单个文件,也可以是数组。

output 定义了输出文件路径和名字 上面的结果就会输出为在当前目录下,有page1.bundle.js and page2.bundle.js

另外publicPath是网站运行时的访问路径

resolve是自动补全后缀: require('common')就会补全为require('common.js')


loader在module(模块)下面,所以说webpack把静态资源都称为模块。


那么webpack模块异步加载咋搞?


用它提供的require.ensure

             require.ensure([ "jquery" ], function  () { //这里是异步的
                 console.log( "进入require.ensure回调" )
                 require( "./ensure_a.js" )
                 console.log( "调用完require.ensure" )
所以在进入某个功能, 页面的时候就可以再加载下啦。


好像需要定义chunkFilename,这个再议。

     output: {
         path: path.join(__dirname, "dist" ),
         filename: "[name].js" ,
         publicPath: "dist/" , //给require.ensure用
         chunkFilename: "[name].chunk.js" //给require.ensure用
     }, //页面引用的文件



我的package json:


{
  "name": "todos",
  "version": "1.0.0",
  "description": "react redux todos",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack-dev-server"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.4.5",
    "babel-loader": "^6.2.1",
    "babel-preset-es2015": "^6.3.13",
    "babel-preset-react": "^6.3.13",
    "babel-preset-stage-2": "^6.5.0",
    "react": "^15.0.2",
    "react-dom": "^15.0.2",
    "redux-devtools": "^3.3.1",
    "webpack": "^1.13.0",
    "webpack-dev-server": "^1.14.1"
  },
  "dependencies": {
    "path": "^0.12.7",
    "react-redux": "^4.4.5",
    "redux": "^3.5.2"
  }
}

就可以玩啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值