react_webpack_rails 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3fd3ea5641aff396b2ade349f530503b12fda9dc
4
- data.tar.gz: 65b1f0030b965aef255c22e58ed19b4309529a91
3
+ metadata.gz: c9c67fecd5f3e1b72d2ebc46ec7dfb8d05ab75e4
4
+ data.tar.gz: 05a6301021820dab1ccb64564b424f0bc3ba69de
5
5
  SHA512:
6
- metadata.gz: 2afdd1696782b2b19b7520c14ea07b7c6b63838a7e945109c623f12af6cd03a9b91b761b8f568f570ed81ce3738726fd4c36f4973b971bfd378dedf97d017a52
7
- data.tar.gz: 269768ac294ea3e532978fa23e9a3a6db9830aeaec1385a61cd0058020061d9de3e0608570e24a6a300fca4d365cace7b7268261c24b743987e672cfef83121d
6
+ metadata.gz: 83e44ea83f26566d10ebca037c2c5cfe38fe998c88559ee2bb7345ad401ec0ceb76c51cc3a540fa5f82e801ded6d7023aee3aaae3e62c10a9a0ce1432399b0bd
7
+ data.tar.gz: 1e413493cca65abd5f4100b20291545a517712a53599345a7a774a0e848604f7f45c68c1b9c45ba2c2ea590db46fec4d7c46ca2bd7c03f96a8d304ef99be4359
data/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## 0.0.5 (November 26, 2015)
2
+ * Add Hot Reload support
3
+ * Dependencies:
4
+ * webpack-dev-server
5
+ * react-hot-loader
6
+ * Second development server (webpack-dev-server) with hot-auto-reload:
7
+ * Setup and add tests
8
+
9
+ ### migration 0.0.4 -> 0.0.5
10
+ * make sure your package.json is up-to-date.
11
+ * install `react-hot-loader ^1.3.0`
12
+ * install `webpack-dev-server" ^1.12.1`
13
+ * add to application.html.erb <body>:
14
+ ```erb
15
+ <% if Rails.env.development? %>
16
+ <script src='http://localhost:8080/assets/react_bundle.js'></script>
17
+ <% end %>
18
+ ```
19
+ * copy file `hot-dev.config.js` from https://github.com/netguru/react_webpack_rails/tree/master/lib/generators/react_webpack_rails/templates/webpack to your `/webpack` directory.
20
+ * make sure that you have `react_bundle.js` in your `/app/assets/javascripts` directory. If not, to use hot-reloading server please create empty `react_bundle.js` in your `/app/assets/javascripts` directory or just run `$ npm start` or `$ npm build` in your terminal.
21
+
22
+
1
23
  ## 0.0.4 (October 26, 2015)
2
24
  * Add [react-router [v1]](https://github.com/rackt/react-router) integration:
3
25
  * js helpers:
data/README.md CHANGED
@@ -26,16 +26,23 @@ This will create following files:
26
26
 
27
27
  ```
28
28
  ├── app
29
- └── react
30
- ├── components
31
- │ ├── hello-world.jsx
32
- │ └── hello-world-test.jsx
33
- └── index.js
29
+ ├── react
30
+ ├── components
31
+ ├── hello-world.jsx
32
+ └── hello-world-test.jsx
33
+ └── index.js
34
+ │ ├── views
35
+ │ │ └── layouts
36
+ │ │ └── _react_hot_assets.html.erb
37
+ │ └── assets
38
+ │ └── javascripts
39
+ │ └──react_bundle.js
34
40
  ├── webpack
35
41
  │ ├── dev.config.js
42
+ │ ├── hot-dev.config.js
36
43
  │ ├── production.config.js
37
44
  │ └── tests.config.js
38
- |── .babelrc
45
+ ├── .babelrc
39
46
  ├── karma.conf.js
40
47
  ├── package.json
41
48
  └── webpack.config.js
@@ -62,6 +69,12 @@ By default, `react-webpack-rails` uses Babel Stage 1 - Proposal. If you want to
62
69
 
63
70
  ## Usage
64
71
  ##### Check [docs](https://github.com/netguru/react_webpack_rails/tree/master/docs) for detailed api description.
72
+ ### to use hot-reloading add partial in your application.html.erb to `<body>`:
73
+ (it's not needed when you want to use just webpack in watch mode without hot-reloading)
74
+ ```erb
75
+ <%= render 'layouts/react_hot_assets' %>
76
+ ```
77
+
65
78
  #### Register component in index.js
66
79
 
67
80
  ```js
@@ -87,6 +100,10 @@ Run webpack in watch mode using script:
87
100
 
88
101
  $ npm start
89
102
 
103
+ Run webpack in hot-auto-reloading mode using script (to use it you have to add `react_hot_assets` partial as mentioned before):
104
+
105
+ $ npm run start-hot-dev
106
+
90
107
  Or manually:
91
108
 
92
109
  $ webpack -w --config YOUR_CONFIG
data/Rakefile CHANGED
@@ -1,6 +1,26 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
 
4
- RSpec::Core::RakeTask.new(:spec)
4
+ namespace :spec do
5
+ desc 'Run all tests'
6
+ task all: [:gem, :rails3, :rails4] do
7
+ puts 'Finished all tests, yay!'
8
+ end
5
9
 
6
- task :default => :spec
10
+ desc 'Run gem tests'
11
+ task :gem do
12
+ sh %Q(rspec spec/react_webpack_rails_spec.rb)
13
+ end
14
+
15
+ desc 'Run rspec for rails3 application'
16
+ task :rails3 do
17
+ sh %Q(cd spec/rails3_dummy_app && rspec)
18
+ end
19
+
20
+ desc 'Run rspec for rails4 application'
21
+ task :rails4 do
22
+ sh %Q(cd spec/rails4_dummy_app && rspec)
23
+ end
24
+ end
25
+
26
+ task default: 'spec:all'
@@ -9,10 +9,13 @@ module ReactWebpackRails
9
9
  copy_file '.babelrc', '.babelrc'
10
10
  copy_file 'webpack.config.js', 'webpack.config.js'
11
11
  copy_file 'webpack/dev.config.js', 'webpack/dev.config.js'
12
+ copy_file 'webpack/hot-dev.config.js', 'webpack/hot-dev.config.js'
12
13
  copy_file 'webpack/production.config.js', 'webpack/production.config.js'
13
14
  copy_file 'karma.conf.js', 'karma.conf.js'
14
15
  copy_file 'webpack/tests.config.js', 'webpack/tests.config.js'
16
+ copy_file 'partial/_react_hot_assets.html.erb', 'app/views/layouts/_react_hot_assets.html.erb'
15
17
  template 'react/index.js.erb', 'app/react/index.js'
18
+ create_file 'app/assets/javascripts/react_bundle.js'
16
19
  if options.example
17
20
  copy_file 'react/components/hello-world.jsx', 'app/react/components/hello-world.jsx'
18
21
  copy_file 'react/components/hello-world-test.jsx', 'app/react/components/hello-world-test.jsx'
@@ -11,6 +11,8 @@
11
11
  "karma-sinon": "^1.0.4",
12
12
  "karma-sourcemap-loader": "^0.3.6",
13
13
  "karma-webpack": "^1.7.0",
14
+ "react-hot-loader": "^1.3.0",
15
+ "webpack-dev-server": "^1.12.1",
14
16
  "webpack-notifier": "^1.2.1"
15
17
  },
16
18
  "dependencies": {
@@ -28,6 +30,7 @@
28
30
  "scripts": {
29
31
  "test": "karma start",
30
32
  "start": "webpack -w --config webpack/dev.config.js",
33
+ "start-hot-dev": "webpack-dev-server --hot --inline --config webpack/hot-dev.config.js",
31
34
  "build": "webpack -p --config webpack/production.config.js"
32
35
  },
33
36
  "license": "",
@@ -0,0 +1,3 @@
1
+ <% if Rails.env.development? %>
2
+ <script src='http://localhost:8080/assets/react_bundle.js'></script>
3
+ <% end %>
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
2
 
3
- class Users extends React.Component {
3
+ export default class HelloWorld extends React.Component {
4
4
  render() {
5
5
  return <div>Hello World</div>;
6
6
  }
7
7
  }
8
-
9
- export default Users;
@@ -0,0 +1,13 @@
1
+ var config = require('./dev.config');
2
+
3
+ var jsxLoader = config.module.loaders.filter(function(loader) { return loader.key == 'jsx' })[0]
4
+ jsxLoader.loaders.unshift('react-hot');
5
+
6
+ config.output.publicPath = 'http://localhost:8080/assets/'
7
+
8
+ config.entry.main.push(
9
+ 'webpack/hot/only-dev-server',
10
+ 'webpack-dev-server/client?http://localhost:8080'
11
+ )
12
+
13
+ module.exports = config;
@@ -1,8 +1,9 @@
1
1
  var ExtractTextPlugin = require('extract-text-webpack-plugin');
2
2
 
3
3
  module.exports = {
4
- context: __dirname + '/app/react',
5
- entry: './index',
4
+ entry: {
5
+ main: ['./app/react/index.js']
6
+ },
6
7
  output: {
7
8
  path: __dirname + '/app/assets/javascripts',
8
9
  filename: 'react_bundle.js'
@@ -10,15 +11,18 @@ module.exports = {
10
11
  module: {
11
12
  loaders: [
12
13
  {
14
+ key: 'jsx',
13
15
  test: /\.jsx?$/,
14
- exclude: /node_modules/,
15
- loader: 'babel-loader'
16
+ exclude: /(node_modules)/,
17
+ loaders: ['babel-loader']
16
18
  },
17
19
  {
20
+ key: 'scss',
18
21
  test: /\.scss$/,
19
22
  loader: ExtractTextPlugin.extract('css!sass')
20
23
  },
21
24
  {
25
+ key: 'css',
22
26
  test: /\.css$/,
23
27
  loader: ExtractTextPlugin.extract('css!sass')
24
28
  }
@@ -1,4 +1,4 @@
1
1
  module ReactWebpackRails
2
- class Engine < Rails::Engine
2
+ class Engine < ::Rails::Engine
3
3
  end
4
4
  end
@@ -1,7 +1,7 @@
1
1
  require 'react_webpack_rails/view_helpers'
2
2
 
3
3
  module ReactWebpackRails
4
- class Railtie < Rails::Railtie
4
+ class Railtie < ::Rails::Railtie
5
5
  initializer 'react_webpack_rails.view_helpers' do
6
6
  ActionView::Base.send :include, ViewHelpers
7
7
  end
@@ -1,3 +1,3 @@
1
1
  module ReactWebpackRails
2
- VERSION = '0.0.4'.freeze
2
+ VERSION = '0.0.5'.freeze
3
3
  end
@@ -1,4 +1,3 @@
1
1
  require 'react_webpack_rails/version'
2
- require 'react_webpack_rails/engine'
3
- require 'react_webpack_rails/railtie'
4
- require 'react_webpack_rails/view_helpers'
2
+ require 'react_webpack_rails/engine' if defined?(Rails)
3
+ require 'react_webpack_rails/railtie' if defined?(Rails)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_webpack_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafał Gawlik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2015-10-26 00:00:00.000000000 Z
12
+ date: 2015-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -93,11 +93,13 @@ files:
93
93
  - lib/generators/react_webpack_rails/templates/.babelrc
94
94
  - lib/generators/react_webpack_rails/templates/karma.conf.js
95
95
  - lib/generators/react_webpack_rails/templates/package.json.erb
96
+ - lib/generators/react_webpack_rails/templates/partial/_react_hot_assets.html.erb
96
97
  - lib/generators/react_webpack_rails/templates/react/components/hello-world-test.jsx
97
98
  - lib/generators/react_webpack_rails/templates/react/components/hello-world.jsx
98
99
  - lib/generators/react_webpack_rails/templates/react/index.js.erb
99
100
  - lib/generators/react_webpack_rails/templates/webpack.config.js
100
101
  - lib/generators/react_webpack_rails/templates/webpack/dev.config.js
102
+ - lib/generators/react_webpack_rails/templates/webpack/hot-dev.config.js
101
103
  - lib/generators/react_webpack_rails/templates/webpack/production.config.js
102
104
  - lib/generators/react_webpack_rails/templates/webpack/tests.config.js
103
105
  - lib/react_webpack_rails.rb