node.js学习之webpack打包react最简单用法

研究一天多也没弄出来个毛,今天早上来到随便一试,嘿,结果成了。最简洁最简单的使用方法,记录下来。

首先,安装webpack命令:

$ npm install webpack -g

全局安装,可以在cmd中使用webpack命令。

然后创建一个项目,项目名称webpack,我这里用的是webstorm11.创建成功之后cmd进入项目根目录,执行命令:

$ npm init

这个命令会创建一个package.json的文件,是整个项目的配置文件,添加上webpack的依赖包:

"devDependencies": {
  "jsx-loader": "^0.12.2",
  "css-loader": "^0.15.0",
  "style-loader": "^0.12.4",
  "react-hot-loader": "^1.1.1",
  "webpack": "^1.5.1",
  "webpack-dev-server": "1.6.4"
},

这些包中的各种loader 是对不同文件格式进行打包的支持。

然后安装这些包:

$ npm install

安装完成之后我们先新建一些文件,

根目录下建一个src文件夹,

src文件夹中建一个项目入口文件,我这里建的是index.js.

index.js:

const React = require(‘react‘);
const ReactDom = require(‘react-dom‘);
const View = require(‘./content‘);

ReactDom.render(<View/>,document.body);

在跟index.js同目录下,我建了一个content.js用来写react组件。

content.js:

const React = require(‘react‘);

class View extends React.Component{
  render(){
    return <p>看看有没有内容</p>
  }
}

module.exports = View;

然后在根目录下新建一个webpack.config.js,这个文件是对webpack的配置。

内容如下:

var webpack = require(‘webpack‘);
var commonsPlugin = new webpack.optimize.CommonsChunkPlugin(‘common.js‘);
module.exports = {
  //插件项
  plugins: [commonsPlugin],
  //页面入口文件配置
  entry: {
    index : ‘./src/index.js‘
  },
  //入口文件输出配置
  output: {
    path: ‘./lib/‘,
    filename: ‘[name].js‘
  },
  module: {
    //加载器配置
    loaders: [
      { test: /\.js$/, loader: ‘jsx-loader?harmony‘ }
    ]
  },
  //其它解决方案配置
  resolve: {
    root: ‘D:/workproject/webpack/src‘, //绝对路径
    extensions: [‘‘, ‘.js‘, ‘.json‘, ‘.scss‘],
    alias: {
      AppStore : ‘js/stores/AppStores.js‘,
      ActionType : ‘js/actions/ActionType.js‘,
      AppAction : ‘js/actions/AppAction.js‘
    }
  }
};

各个节点的作用都写了注释,插件项我还没弄明白是什么意思,页面入口文件配置就是项目的入口文件,入口文件输出配置是对打包之后的文件的保存位置,我这里配置到了根目录/lib/文件夹下,如果当前没有这个文件夹,打包的时候会自动新建。

加载器配置是对要打包的不同文件格式使用不同的加载器去打包,这一块是很重要的,

写完这个配置文件之后就可以执行命令打包了:

$ webpack

执行这个命令时会自动读取webpack.config.js按照配置进行打包。

如果是执行这个命令后面不带参数的话必须每修改一次文件就要重新手动执行一下这个命令,这样很麻烦,我们可以在命令后加一个参数 -w

$ webpack -w

这样在我们每次修改完文件内容并保存的时候会自动编译,就不用每次再手动执行一次了。

打包完之后我们会发现在项目根目录下多出了一个lib文件夹,文件夹里有个index.js,那是配置中的入口文件输出配置中写好的

//入口文件输出配置
  output: {
    path: ‘./lib/‘,
    filename: ‘[name].js‘
  },

path 是输出路径,filename 是输出名字,[name] 是原名输出,也可以指定名字,如果指定一个固定的名字,可以

filename: ‘build.js‘

这样直接写,如果有多个入口文件,可以

filename: ‘[name].build.js‘

到时候输出的文件名就是index.build.js.我这个项目里输出的还是原来的名字:index.js

打包好之后,我们在根目录下新建一个index.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript" src="lib/common.js" charset="utf-8"></script>
<script type="text/javascript" src="lib/index.js" charset="utf-8"></script>
</body>
</html>

把两个文件都引入进去。common.js 我还没弄明白是什么。 lib/index.js 就是我们用webpack打包过的文件,是自动生成的。

然后就可以直接双击index.html在浏览器中查看结果。

本文参考http://www.jianshu.com/p/b95bbcfc590d 更多内容稍后补充。

时间: 2024-10-10 00:32:51

node.js学习之webpack打包react最简单用法的相关文章

Node.js学习笔记(5)--文件简单操作

说明(2017-5-3 11:53:45): 1. foo.js 1 var fs = require("fs"); 2 var documents = []; 3 fs.readdir("./段虹",function(err,files){ 4 5 for(let i = 0; i < files.length; i++){ 6 // var filename = files[i]; 7 fs.stat("./段虹/" + files[i

node.js学习笔记目录

1.node.js学习笔记(1)--Node.js简介及环境安装 2.node.js学习笔记(2)--使用Express快速创建应用 3.node.js学习笔记(3)--Express创建的项目分析 4.node.js学习笔记(4)--使用Express完成简单的登陆 5.node.js学习笔记(5)--MongoDB下载及安装 6.node.js学习笔记(6)--MongoDB简单入门 7.node.js学习笔记(7)--Node.js与MongoDB简单交互 8.node.js学习笔记(8)

NODE.JS学习的常见误区及四大名著

NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang/p/4374681.html 收到了很多兄弟的热情回复和激烈讨论,在此深表感谢,有的朋友觉得我写的比较粗犷,没有给出具体的性能分析和对比,在此我想说的是其实好多东西的性能分析,根本就不用我写到博客上,其一是如果我写了,很多人同样会觉得不客观,不中立,其二是网上很多中立的机构,随便搜索一下,对比太多

Node.js学习笔记(3) - 简单的curd

这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简单介绍 这次demo,只涉及到简单的curd操作,用到的数据库是mongo,所以要安装mongo数据库,数据库连接驱动是mongoose: 当然关于mongo的驱动有很多,比如mongous mongoskin等:(详见http://cnodejs.org/topic/4f4ca8e0940ce2e

node.js 学习 00

前言 先写点废话,相中node.js倒是纯属偶然. 在这之前我想要要搭建一个人网站,我感到现有的博客/空间之类只能给予用户有限的控制力.于是在AWS上申请了免费一年的VPS,自己买了一个域名,百度了之后选择了在主机上挂了一个nginx.在这之后我发现直接手写html是一件十分麻烦的事情,于是暂时失去了构建的方向.只是改了改nginx的默认的主页,就先放着了. 在这之后的新学期里,我多一门 数据库原理 的课程,在这之前我通过王垠的博客了解过Nosql的一些概念.数据库原理老师对传统关系性数据库的吹

Node.js 学习一

Node.js是一个可以让javascript运行在服务器端的平台.node.js是一个为实时web应用开发而诞生的平台,它考虑到了实时响应/超大规模数据要求下架构的可扩展性.它采用了单线程,异步石IO,事件驱动式的设计模式. Node.js有着强大而灵活的包管理器(node package manager)npm node.js 架构设计:1,异步式I/O,事件驱动 2,V8引擎作为javascript引擎 3,高效的libev事件驱动库 4,高效的libeio异步I/O库 CommonJS:

node.js学习一——什么是node.js

定义:node.js是运行在服务器端的运用了谷歌v8引擎的javascript运行平台 特点:1. 异步式I/O(非阻塞式I/O) 2. 事件驱动 什么是异步式I/O(非阻塞式I/O)? 要了解什么是异步式I/O(非阻塞式I/O),必须要先了解下什么是I/O,什么阻塞, 什么是同步式I/O(阻塞式I/O). I/O的定义: 线程在执行磁盘读写或者是网络通信时统称为I/O操作. 阻塞定义: 在I/O的过程中由于要耗费的时间比较长,操作系统会剥夺这个线程对CPU的控制权,让线程暂停执行.同时把资源交

系列文章--Node.js学习笔记系列

Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql) Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识 Nodejs学习笔记(七)--- Node.js + Exp

Node.js学习(1):Node.js 和Socket.IO 实现chat

使用 Node.js 和 Socket.IO 构建简单的聊天程序 在node.js根目录下创建文件夹chat,里面添加两个文件:app.js和index.html app.js var fs = require('fs') , http = require('http') , socketio = require('socket.io'); var server = http.createServer(function(req, res) { res.writeHead(200, { 'Cont