μ λ babel μ΄λ³΄μμ΄κ³ μ νλ‘μ νΈλ₯Ό μ€μ νκ³ babelμ μ€μΉνκ³ bowerλ₯Ό ν΅ν΄ react-dndλ₯Ό μ€μΉνμΌλ©° λ΄ .babelrcμλ λ€μ μ€μ΄ μμ΅λλ€.
{
"presets": ["es2015", "stage-0", "react"]
}
λͺ¨λ λΉλ μ€ν¨: ReferenceError:
[BABEL] <path>\bower_components\react-dnd\src\index.js: Using removed Babel 5 option: <path>\bower_components\react-dnd\.babelrc.stage - Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets
λ΄κ° 무μμ μλͺ»νκ³ μμ§
μλ νμΈμ @jagan-veeraraghavan! Bowerμ react-dndλ₯Ό μ΄λ»κ² ν¬ν¨νκ³ μμ΅λκΉ? λΉμ μ κ·Έλ κ²ν΄μΌ κ°μ .
λμ Bowerκ° μ 체 Github μ μ₯μλ₯Ό κ°λ¦¬ν€λλ‘ νλ κ² κ°μ΅λλ€. .babelrc
μ¬μ© μ€μΈ Babel λ²μ κ³Ό νΈνλμ§ μλ Babel 5 κ΅¬μ± νμΌ(6)μ΄ ν¬ν¨λμ΄ μκΈ° λλ¬Έμ μλνμ§ μμ΅λλ€. npm λ°°ν¬νμ μ΄ νμΌμ μλ΅ν©λλ€(btw, Bowerλ³΄λ€ npmμ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€).
λ΄κ° νλ Έλ€λ©΄ μμ λ‘κ² λ¬Έμ λ₯Ό λ€μ μ΄ μ μμ΅λλ€. λν μ΄μ κ°μ μ§μ μ§λ¬Έμ λν΄ gitter room μ μΆμ²ν©λλ€.
μλ νμΈμ, webpackκ³Ό babel 6μ μ¬μ©νμ¬ λΉμ·ν λ¬Έμ κ° λ°μνμ΅λλ€.
ERROR in ./~/dnd-core/lib/index.js
Module build failed: ReferenceError: [BABEL] /node_modules/dnd-core/lib/index.js:
Using removed Babel 5 option: /node_modules/dnd-core/.babelrc.stage - Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets
λ΄ μ€μ μ λ€μκ³Ό κ°μ΅λλ€.
ν¨ν€μ§.json
{
"devDependencies": {
"babel-core": "^6.3.26",
"babel-loader": "^6.2.1",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-stage-0": "^6.5.0",
"css-loader": "^0.23.1",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.8.5",
"jquery": "^2.2.1",
"less": "^2.6.1",
"less-loader": "^2.2.2",
"style-loader": "^0.13.0",
"url-loader": "^0.5.7",
"webpack": "^1.12.9",
"webpack-dev-server": "^1.14.0"
},
"dependencies": {
"babel-polyfill": "^6.3.14",
"expose-loader": "^0.7.1",
"jquery": "^2.1.4",
"lodash": "^3.10.1",
"react": "^0.14.7",
"react-dnd": "^2.1.3",
"react-dnd-html5-backend": "^2.1.2",
"react-dom": "^0.14.7",
"tracking": "^1.1.2"
}
}
.babelrc
{
"presets": ["react", "es2015", "stage-0"]
}
μΉν©
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader'
}
]
}
};
μ무λ λλ₯Ό λμμ€ μ μμ΅λκΉ?
μ, webpack.confμμ node_modules
λ₯Ό μ μΈνμ¬ μμ νμ΅λλ€ :dancers:
{
exclude: /(node_modules|bower_components)/,
test: /\.js$/,
loader: 'babe-loader'
},
κ·Έκ²μ λ΄ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€, λλ¨ν κ°μ¬ν©λλ€!
@μν°0331
λ‘λ: 'λ² μ΄λΉ λ‘λ'
μ΄κ²μ μΌμ΄μ΄μΌν©λλ€.
@billyjanitsch babel μ λ°μ΄νΈλ₯Ό κ³ λ € νμ΅λκΉ? λΉμ μ κ·Έκ²μΌλ‘ PRμ μ΄κ² μ΅λκΉ?
Webpack λ° Babel 6μμ μ΄ λ¬Έμ κ° λ°μνμ΅λλ€. @walter0331κ³Ό μ μ¬ν©λλ€. node_modules
μ μ¬μ©μ μ μ μΆμλ₯Ό μννκ³ μμΌλ―λ‘ node_modules
λ₯Ό μ μΈνλ©΄ λμμ΄ λμ§ μμΌλ―λ‘ λ΄ Babelμ ν΅ν΄ μ΄ μμ
μ κ³μ μ€νν΄μΌ ν©λλ€.
λͺ νννκΈ° μν΄ λͺ¨λ μ¬λλ€μ "babe-loader"κ° μλλΌ "babel-loader"λ₯Ό μλ―Ένλ€κ³ μκ°ν©λλ€.
loader: 'babel-loader'
babel5.xμμ 6.xλ‘ μ κ·Έλ μ΄λνλ €κ³ νλλ° λμΌν μ€λ₯κ° λ°μν©λλ€. λλ babel 6 λ° webpackκ³Ό ν¨κ» react, reduxλ₯Ό μ¬μ©νκ³ μμ΅λλ€.
μλλ λ΄ μΉν© ꡬμ±(μΌλΆ)μ
λλ€.
λͺ¨λ: {
λ‘λ: [
{ ν
μ€νΈ: /.svg$/, μ μΈ: /.less$/, λ‘λ: 'svg-inline'},
{ ν
μ€νΈ: /.컀νΌ$/, λ‘λ: 'μ»€νΌ λ‘λ' },
{ ν
μ€νΈ: /.jsx?$/, μ μΈ: /node_modules/,
λ‘λ:
['react-hot-loader/webpack', 'babel-loader?' + JSON.stringify({
μ¬μ μ€μ : ['es2015','stage-0','λ°μ'],
νλ¬κ·ΈμΈ: ['transform-decorators-legacy',
['λΉλκΈ°λ₯Ό λͺ¨λ λ°©μμΌλ‘ λ³ν',
{'λͺ¨λ': 'λΈλ£¨λ²λ', 'λ©μλ': 'μ½λ£¨ν΄'}
]]
})
]
},
{ ν
μ€νΈ: /.less/, λ‘λ: 'style-loader!css-loader!less-loader' },
{ ν
μ€νΈ: /.css/, λ‘λ: 'style-loader!css-loader' },
{ ν
μ€νΈ: /.json$/, λ‘λ: 'json-loader' },
{ ν
μ€νΈ: /.gif$/, λ‘λ: "url-loader?mimetype=image/png" },
{ ν
μ€νΈ: /.woff(2)?(\?v=[0-9].[0-9].[0-9])?$/, λ‘λ: "url-loader?limit=10000&minetype=application/ font-woff" },
{ ν
μ€νΈ: /.(ttf|eot|svg)(\?v=[0-9].[0-9].[0-9])?$/, λ‘λ: "νμΌ λ‘λ" },
{ ν
μ€νΈ: /jquery.js$/, λ‘λ: 'expose?jQuery' },
]
},
.babelrc
{
"μ¬μ μ€μ ": ["es2015", "λ°μ", "λ¨κ³-0"],
"νλ¬κ·ΈμΈ": ["λ³ν λ°μ½λ μ΄ν°-λ κ±°μ", ["λ³ν-λΉλκΈ°-λ-λͺ¨λ-λ°©λ²", {
"λͺ¨λ": "λΈλ£¨λ²λ",
"λ©μλ": "μ½λ£¨ν΄"
}]]
}
μ΄ μ€λ₯ λ©μμ§λ μ£Όλ‘ 'bluebird'μμ Promiseλ₯Ό κ°μ Έμ€λ νμΌμ λν΄ λνλ©λλ€.
μ무λ λμΈ μ μμ΅λκΉ?
μΆ©λ. λΉλ μ μ’ μμ±μ babel ꡬμ±μ 무μν μ μλ λ°©λ²μ΄ μμ΅λκΉ...?
@walter0331 μ λ§ κ°μ¬ν©λλ€. μ΄ λ¬Έμ λ‘ μΈν΄ κ·νμ μ루μ μ μ½μ λκΉμ§ νΌλ
@ry928330 κΈ°λ³Έμ μΌλ‘ disposables
λΌμ΄λΈλ¬λ¦¬λ react-dnd
μμ μ¬μ©λκ³ disposables
λ μ€λλ babel λ²μ μΈ Babel 5λ₯Ό μ¬μ©ν©λλ€(μ΄ λΌμ΄λΈλ¬λ¦¬λ μ μ§ κ΄λ¦¬λμ§ μμ). webpack ꡬμ±μ ν¬ν¨λλ©΄ νμ¬ Babel λ²μ 6μ μκΈ° λλ¬Έμ μΆ©λμ΄ λ°μν©λλ€. λ°λΌμ μ¬κΈ°μ λ λμ μ루μ
(μ μ΄λ μ μκ² ν¨κ³Όκ° μμλ κ²)μ λ°λμ λͺ¨λ node_modulesλ₯Ό μ μΈ νλ κ²μ
λλ€.
babel-loader webpack ꡬμ±μ exclude: /(disposables)/
λ₯Ό μΆκ°ν©λλ€. μλ₯Ό λ€λ©΄ λ€μκ³Ό κ°μ΅λλ€.
{
test: /\.js$/,
exclude: /(disposables)/,
loader: 'babel-loader',
}
κ·Έκ²μ΄ μ¬λ°λ₯Έ ν΄κ²°μ±
μ
λλ€. Babel disposables
μ μ΄λ€ λ²μ μ΄ λ΄λΆμμ μ¬μ©λλμ§λ μ€μνμ§ μμ΅λλ€. μ§μ§ λ¬Έμ λ Babelλ‘ node_modules
λ₯Ό μ»΄νμΌνλ €κ³ νλ€λ κ²μ
λλ€. μ΄κ²μ νμ μμ ν κ²μ μλλ©° μν μ€μΈ μμ
μ μκ³ νΉμ ν¨ν€μ§λ§ μ ννμ§ μλ ν(λλ engines
νλμ κ°μ λ€λ₯Έ μ νΈλ₯Ό μ¬μ©νκ³ κ΅¬μ±μ 무μνμ§ μλ ν) μ΄ μμ
μ μνν΄μλ μ λ©λλ€.
μ¦, [email protected]
"μμ "μ κ²μνμ΅λλ€. κ·Έλλ node_modules
μμ λͺ¨λ κ²μ μ»΄νμΌνλ©΄ λ¬Έμ κ° λ°μν©λλ€.
mix.webpackConfig({
module: {
rules: [{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: Config.babel()
}
}]
}
})
κ·Έκ²μ μλν©λλ€, κ°μ¬ν©λλ€!
[]λ₯Ό μΆκ°νμ¬ μμ νμ΅λλ€.
presets: [ ["es2015", { loose: false }] ]
μ΄κ²μ μ€μλ‘ server/.babelrc
νμΌμ stage: 1
λ₯Ό μΆκ°ν νμ λ°μνμ΅λλ€.
{
"presets": ["es2015", "stage-0"],
"plugins": ["transform-runtime"],
stage: 1
}
μ΄κ²μ μ κ±°νμ¬ κ³ μ
{
"presets": ["es2015", "stage-0"],
"plugins": ["transform-runtime"],
}
κ°μ₯ μ μ©ν λκΈ
@μν°0331
μ΄κ²μ μΌμ΄μ΄μΌν©λλ€.