React学习之围棋记谱本制作(一)环境准备

前端之家收集整理的这篇文章主要介绍了React学习之围棋记谱本制作(一)环境准备前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  这几天边学边做,实现了react+bootstrap+jquery+webpack+express+oracledb的集成。

  oracledb编译请看: http://www.jb51.cc/article/p-fwuzzlbm-bqq.html
  webpack打包bootstrap请看: http://www.jb51.cc/article/p-fueezucc-bqq.html
  webpack学习请看: http://www.jb51.cc/article/p-rmkkivua-bqq.html

  网上类似的文章很多。我只贴一下我的两个重要配置文件

一、package.json
  1. {
  2. "name": "rwne","version": "1.0.0","description": "React+Webpack+Node.js+Express","main": "app.js","scripts": {
  3. "test": "test"
  4. },"keywords": [
  5. "wallimn","study"
  6. ],"author": "wallimn","license": "ISC","dependencies": {
  7. "babel-core": "^6.18.2","babel-loader": "^6.2.8","babel-preset-es2015": "^6.18.0","babel-preset-react": "^6.16.0","bootstrap-sass": "^3.3.7","css-loader": "^0.26.0","ejs": "^2.5.2","express": "^4.14.0","jquery": "^3.1.1","jsx-loader": "^0.13.2","nodemon": "^1.11.0","oracledb": "^1.11.0","react": "^15.4.0","react-dom": "^15.4.0","style-loader": "^0.13.1","tether": "^1.3.8","webpack": "^1.13.3"
  8. },"devDependencies": {
  9. "bootstrap-loader": "^1.3.1","extract-text-webpack-plugin": "^1.0.1","file-loader": "^0.9.0","html-webpack-plugin": "^2.24.1","node-sass": "^3.13.0","resolve-url-loader": "^1.6.0","sass-loader": "^4.0.2","url-loader": "^0.5.7"
  10. }
  11. }


二、webpack.config.js
  1. var webpack = require('webpack');
  2. var HtmlwebpackPlugin = require('html-webpack-plugin');
  3. var path = require("path");
  4. var ExtractTextPlugin = require("extract-text-webpack-plugin");
  5.  
  6. //var goCssExtractor = new ExtractTextPlugin('css/go.css');
  7.  
  8. module.exports = {
  9. // 页面入口文件配置
  10. entry : {
  11. 'main/index': './js/view/main/index.js','main/go': './js/view/main/go.js',//'view/main/jquery':'jquery','public/bootstrap':'bootstrap-loader',},// 入口文件输出配置
  12. output : {
  13. path : path.join(__dirname,'..','dist'),filename : 'js/[name].bundle.js'
  14. },devtool: 'eval-source-map',module: {
  15. // 加载器配置
  16. loaders: [
  17. {test: /\.js$/,loader: 'babel-loader!jsx-loader?harmony' },//{test: /\.css$/,loader: 'style-loader!css-loader'},{test: /\.css$/,loader:ExtractTextPlugin.extract("style-loader","css-loader")},{test: /\.scss$/,loaders:['style','css','sass']},{test: /\.(png|jpe?g|ico|bmp|gif)$/,loader: 'file?limit=10000&name=/img/[name]-[hash:8].[ext]'},{test: /\.woff2?(\?v=[0-9]\.[0-9]\.[0-9])?$/,loader : 'file?limit=10000&mimetype=application/font-woff&name=/font/[name]-[hash:8].[ext]'},{test: /\.(ttf|eot|svg)(\?[\s\S]+)?$/,loader : 'file?name=/font/[name]-[hash:8].[ext]'},//{test: /bootstrap-sass\/assets\/javascripts\//,loader: 'imports-loader' },]
  18. },// 其他解决方案配置
  19. resolve: {
  20. extensions: ['','.js','.jsx','.css','.json','.scss'],sassLoader:{
  21. includePaths:[path.resolve(__dirname,'../../node_modules/bootstrap-sass')]
  22. },// 插件
  23. plugins : [
  24. new webpack.optimize.UglifyJsPlugin({
  25. compress: {
  26. warnings: false,output: {
  27. comments: false,}),new webpack.ProvidePlugin({
  28. $:'jquery',jQuery:'jquery',"window.jQuery":'jquery'
  29. }),new webpack.HotModuleReplacementPlugin(),new webpack.ProvidePlugin({
  30. 'window.Tether': 'tether',new HtmlwebpackPlugin({
  31. title: 'empty page',chunks:['main/index','public/bootstrap'],template:'template/index.html',filename: 'index.html',chunks:[],filename: 'empty.html',new HtmlwebpackPlugin({
  32. title: '在线记谱本',chunks:['main/go',template:'template/go.html',filename: 'go.html',new ExtractTextPlugin("css/style.css"),]
  33. }


三、程序入口app.js
  1. // 引入模块
  2. var express = require('express');
  3. var path = require('path');
  4. var ejs = require('ejs');
  5.  
  6. var app = express();
  7.  
  8. // 新增接口路由
  9. app.get('/data/:module',function (req,res,next) {
  10. var c_path = req.params.module;
  11. var Action = require('./server/action/' + c_path);
  12. Action.execute(req,res);
  13. });
  14.  
  15. // 对所有(/)URL或路由返回index.html
  16. app.get('/',res) {
  17. res.render('index');
  18. });
  19. // 对所有(/)URL或路由返回index.html
  20. app.get('/go',res) {
  21. res.render('go');
  22. });
  23.  
  24. // 设置views路径和模板
  25. app.set('views',path.join(__dirname,'dist'));
  26. app.set('view engine','html');
  27. app.engine('html',ejs.renderFile);
  28.  
  29. // app.use配置
  30. app.use('/',express.static(path.join(__dirname,'dist')));
  31.  
  32. // 启动一个服务,监听从8888端口进入的所有连接请求
  33. var server = app.listen(8888,function(){
  34. var host = server.address().address;
  35. var port = server.address().port;
  36. console.log(__dirname);
  37. console.log(path.join(__dirname,'dist'));
  38. console.log("views="+app.get("views"));
  39. console.log("process.cwd()="+process.cwd());
  40. console.log('Listening at http://%s:%s',host,port);
  41. });
四、所有文件   把所有文件打包上传一下,可以作为node.js的web项目的基础配置及示范。如有需要请从附件下载。

猜你在找的React相关文章