From dbce29f853f057ef1845ea137a80a1d81a86f731 Mon Sep 17 00:00:00 2001 From: Mark Tareshawty Date: Mon, 26 Feb 2018 11:02:42 -0500 Subject: [PATCH] Configure basic webpacker --- .babelrc | 18 +++++++++ .gitignore | 5 +++ .postcssrc.yml | 3 ++ config/environments/development.rb | 3 ++ config/environments/production.rb | 3 ++ config/webpack/development.js | 3 ++ config/webpack/environment.js | 3 ++ config/webpack/production.js | 3 ++ config/webpack/test.js | 3 ++ config/webpacker.yml | 65 ++++++++++++++++++++++++++++++ 10 files changed, 109 insertions(+) create mode 100644 .babelrc create mode 100644 .postcssrc.yml create mode 100644 config/webpack/development.js create mode 100644 config/webpack/environment.js create mode 100644 config/webpack/production.js create mode 100644 config/webpack/test.js create mode 100644 config/webpacker.yml diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..ded31c0d8 --- /dev/null +++ b/.babelrc @@ -0,0 +1,18 @@ +{ + "presets": [ + ["env", { + "modules": false, + "targets": { + "browsers": "> 1%", + "uglify": true + }, + "useBuiltIns": true + }] + ], + + "plugins": [ + "syntax-dynamic-import", + "transform-object-rest-spread", + ["transform-class-properties", { "spec": true }] + ] +} diff --git a/.gitignore b/.gitignore index e035d7949..2c8fd5287 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,8 @@ config/database.yml /public/*.zip node_modules/ +/public/packs +/public/packs-test +/node_modules +yarn-debug.log* +.yarn-integrity diff --git a/.postcssrc.yml b/.postcssrc.yml new file mode 100644 index 000000000..150dac3c6 --- /dev/null +++ b/.postcssrc.yml @@ -0,0 +1,3 @@ +plugins: + postcss-import: {} + postcss-cssnext: {} diff --git a/config/environments/development.rb b/config/environments/development.rb index 64a02b7d7..5bfc3fba8 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,4 +1,7 @@ Rails.application.configure do + # Verifies that versions and hashed value of the package contents in the project's package.json + config.webpacker.check_yarn_integrity = true + # Settings specified here will take precedence over those in config/application.rb. # In the development environment your application's code is reloaded on diff --git a/config/environments/production.rb b/config/environments/production.rb index f235047f3..ad9992bd5 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,4 +1,7 @@ Rails.application.configure do + # Verifies that versions and hashed value of the package contents in the project's package.json + config.webpacker.check_yarn_integrity = false + # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. diff --git a/config/webpack/development.js b/config/webpack/development.js new file mode 100644 index 000000000..81269f651 --- /dev/null +++ b/config/webpack/development.js @@ -0,0 +1,3 @@ +const environment = require('./environment') + +module.exports = environment.toWebpackConfig() diff --git a/config/webpack/environment.js b/config/webpack/environment.js new file mode 100644 index 000000000..d16d9af74 --- /dev/null +++ b/config/webpack/environment.js @@ -0,0 +1,3 @@ +const { environment } = require('@rails/webpacker') + +module.exports = environment diff --git a/config/webpack/production.js b/config/webpack/production.js new file mode 100644 index 000000000..81269f651 --- /dev/null +++ b/config/webpack/production.js @@ -0,0 +1,3 @@ +const environment = require('./environment') + +module.exports = environment.toWebpackConfig() diff --git a/config/webpack/test.js b/config/webpack/test.js new file mode 100644 index 000000000..81269f651 --- /dev/null +++ b/config/webpack/test.js @@ -0,0 +1,3 @@ +const environment = require('./environment') + +module.exports = environment.toWebpackConfig() diff --git a/config/webpacker.yml b/config/webpacker.yml new file mode 100644 index 000000000..52758b788 --- /dev/null +++ b/config/webpacker.yml @@ -0,0 +1,65 @@ +# Note: You must restart bin/webpack-dev-server for changes to take effect + +default: &default + source_path: app/webpacker + source_entry_path: packs + public_output_path: packs + cache_path: tmp/cache/webpacker + + # Additional paths webpack should lookup modules + # ['app/assets', 'engine/foo/app/assets'] + resolved_paths: ['app/assets'] + + # Reload manifest.json on all requests so we reload latest compiled packs + cache_manifest: false + + extensions: + - .js + - .sass + - .scss + - .css + - .png + - .svg + - .gif + - .jpeg + - .jpg + +development: + <<: *default + compile: true + + # Reference: https://webpack.js.org/configuration/dev-server/ + dev_server: + https: false + host: localhost + port: 3035 + public: localhost:3035 + hmr: false + # Inline should be set to true if using HMR + inline: true + overlay: true + compress: true + disable_host_check: true + use_local_ip: false + quiet: false + headers: + 'Access-Control-Allow-Origin': '*' + watch_options: + ignored: /node_modules/ + + +test: + <<: *default + compile: true + + # Compile test packs to a separate directory + public_output_path: packs-test + +production: + <<: *default + + # Production depends on precompilation of packs prior to booting for performance. + compile: false + + # Cache manifest.json for performance + cache_manifest: true