ठीक है, कुछ अच्छे दृष्टिकोण के आसपास कुछ नूडलिंग के बाद पुराने customMiddleware
सैल के http
मिडलवेयर कॉन्फ़िगरेशन के विकल्प का उपयोग करना प्रतीत होता है, लेकिन केवल config/env/development.js
में बनाए गए विकास पर्यावरण के लिए।
1) स्थापित करें प्रतिक्रिया और प्रतिक्रिया-डोम (यदि आप पहले नहीं किया है):
$ npm install react react-dom --save
2) webpack स्थापित करें, गर्म मॉड्यूल पुन: लोड (& ES6) पाल के लिए समर्थन:
$ npm install sails-webpack babel-core babel-loader \
babel-plugin-syntax-class-properties babel-plugin-syntax-decorators \
babel-plugin-syntax-object-rest-spread \
babel-plugin-transform-class-properties \
babel-plugin-transform-decorators-legacy \
babel-plugin-transform-object-rest-spread \
babel-preset-es2015 babel-preset-react \
copy-webpack-plugin file-loader --save
$ npm install babel-plugin-react-transform
react-transform-catch-errors react-transform-hmr \
webpack-dev-middleware webpack-hot-middleware --save-dev
4) डि:
3) स्थापित करें पुन: लोड गर्म मॉड्यूल के लिए रूपांतरण और मिडलवेयर प्रतिक्रिया सेबल में निर्मित घुरघुराना हुक कि सामान्य रूप से अपने आवेदन लिंक होगा:
// .sailsrc
{
"hooks": {
"grunt": false
}
}
5) पाल कॉन्फ़िगर webpack विन्यास: विकास मोड में गर्म मॉड्यूल पुनः लोड का उपयोग करने के
// config/webpack.js
var webpack = require('webpack');
var CopyWebpackPlugin = require('copy-webpack-plugin');
var path = require('path');
// compile js assets into a single bundle file
module.exports.webpack = {
options: {
context: path.join(__dirname, '..'),
devtool: 'eval',
entry: [
'./assets/js',
'webpack-hot-middleware/client'
],
output: {
path: path.resolve(__dirname, '../.tmp/public'),
publicPath: "/",
filename: 'bundle.js'
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
/* Copy sails.io.js unmolested: */
new CopyWebpackPlugin([
{
from: 'assets/js/dependencies',
to: 'dependencies',
force: true
}
]),
],
resolve: {
extensions: ['', '.js', '.jsx']
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(bower_components|node_modules)/,
loader: 'babel',
},
{ test: /\.css$/, loader: 'style!css' },
{
test: /\.jpe?g$|\.gif$|\.png$|\.svg$|\.woff$|\.ttf$|\.wav$|\.mp3$/,
loader: "file" }
]
}
},
// docs: https://webpack.github.io/docs/node.js-api.html#compiler
watchOptions: {
aggregateTimeout: 300
}
};
6) कॉन्फ़िगर परियोजना चौड़ा .babelrc
:
+०१२३५१६४१०६:
{
"presets": [
"es2015",
"react",
],
"plugins": [
"syntax-class-properties",
"syntax-decorators",
"syntax-object-rest-spread",
"transform-class-properties",
"transform-decorators-legacy",
"transform-object-rest-spread"
],
"env": {
"development": {
"plugins": [["react-transform", {
"transforms": [{
"transform": "react-transform-hmr",
"imports": ["react"],
"locals": ["module"]
}]
}]]
}
}
}
7) अंत में, पाल के config/env/development.js
करने के लिए http.customMiddleware
विन्यास जोड़ने
module.exports = {
/* ... */
/*
* Enable webpack hotloading while in development mode:
*/
http: {
customMiddleware: function (app) {
var webpack = require('webpack');
var webpackConfig = require('../webpack').webpack.options;
var compiler = webpack(webpackConfig);
app.use(require("webpack-dev-middleware")(compiler,
{
noInfo: true,
publicPath: webpackConfig.output.publicPath
}
));
app.use(require("webpack-hot-middleware")(compiler,
{ reload: true }
));
},
}
/* ... */
};
यह मानकर आप assets/js/index.jsx
(या समान) में एक प्रतिक्रिया आवेदन मिल गया है और एक दृश्य जो अपने bundle.js
फ़ाइल शामिल आपको अपने ब्राउज़र का विकास कंसोल पर निम्न देखें में सक्षम करने के लिए बस $ sails lift
होना चाहिए:
|> Now connected to Sails.
\___/ For help, see: http://bit.ly/1DmTvgK
(using browser SDK @v0.11.0)
client.js:51 [HMR] connected
और बूम आपको व्यवसाय में होना चाहिए!
मैं सेल-वेबपैक का लेखक हूं। ध्यान रखें कि इस मॉड्यूल के लिए समर्थन समाप्त हो रहा है: https://github.com/balderdash-projects/sails-webpack/issues/2 –
यह भी ध्यान रखें कि सेल-वेबपैक के निर्देश पूरी तरह से ग्रंट हुक को अक्षम करने का संकेत देते हैं। यदि आप सेल-वेबपैक के साथ जाते हैं, तो आपको डिफ़ॉल्ट कार्यों के माध्यम से प्रदान की गई गंट हुक करने के लिए एक और तरीका खोजने की आवश्यकता हो सकती है (सभी संपत्ति पाइपलाइन सामान जैसे स्वच्छ, उभारा, प्रतिलिपि आदि)। मैं वर्तमान में आउट-ऑफ-द-बॉक्स मिश्रण में गंट-वेबपैक जोड़ने के साथ खेल रहा हूं (अभी तक इसे काफी नहीं मिला है)। हो सकता है कि वेबपैक में वह सब शामिल हो - मैं अभी तक इसके साथ परिचित नहीं हूं। – jinglesthula
अच्छा लगता है, यह काम कर रहा है! लेकिन सीएसएस को स्टाइलस संकलित करने के लिए किस प्रकार का कोड जोड़ना चाहिए? धन्यवाद! – SoldierCorp