2016-03-30 36 views
3
i yapmak Tring duyuyorum Ne

:Visual Studio 2015 JSX/ES2015 sözdizimi

i react için önceden ayarlı babel-core transformatör için react-tools trafo takas edebilirsiniz eğer, ben görüyorum this cevap dayanarak , es2015 ve stage-1.

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\react-server

transformJsxFromPost işlevinde aşağıdaki satırları tranformation ve getiri yapın:

VS2015 topluluğu nodeJsserver.js dosya bulunmaktadır anında kod transpile bir düğüm sunucu üzerinde araçlarını tepki kullanır elementMap görsel stüdyo:

var transformed = reactTools.transformWithDetails(code, { elementMap: true }); 
result = { elementMappings: transformed.elementMappings }; 

VS başlatın bu yerel uygulama verileri ile başlar geçici klasör oluşturur Aşağıdaki konumda bir düğüm sunucu i şimdiye kadar var

%localappdata%\Temp\{most-recent-generated-guid-folder}

:

npm install babel-core --save-dev 
npm install babel-preset-es2015 --save-dev 
npm install babel-preset-react --save-dev 
npm install babel-preset-stage-1 --save-dev 
:
görsel stüdyo External\react-tools\ klasör node_modules klasörü vardır, bu yüzden orada aşağıdaki yüklü NPM

Aşağıdakileri server.js dosyasının sonuna ekleyin:

var babel = require('babel-core'); 
Aşağıdaki satırlar için yukarıda belirtilen transformJsxFromPost yılında

Ve yerini hatları:

var transformed = babel.transform(code, {sourceMaps: "inline"}); 
result = { elementMappings: transformed.map }; 

Bu aşamada, görsel stüdyo yeniden başlatın ve bu i react-tools elementMap aynı biçimde değil kuşkusuz, (a sourceMap döndü olsun, işleri henüz).

Nerede takılıyorum: Hazır ayarları kullanmak için baban almaya çalışırken hemen hata alıyorum. i ilk satırı değiştirin Yani:

var transformed = babel.transform(code, {sourceMaps: "inline", presets: ['es2015', 'react', 'stage-1']}); 

hata alıyorum:

JSX Parser: Couldn't find preset \"es2015\" relative to directory \"C:\\Users\\

hazır ayarları tepki-sunucu klasöründe package.json dosyadaki tüm bağımlılıkları vardır ve herhangi bir sorun olması değil Babel ile, neden eklenti temp dizinine bakıyor?

cevap

2

Gerçek ön ayarları bu örnekte içe aktarma ve adlarını web paketi gibi bir dizeye geçirme yerine bu işleve aktarmak zorunda kaldım.

aşağıdaki ithalatı ekledi:

var es2015 = require('babel-preset-es2015'); 
var react = require('babel-preset-react'); 
var stage1 = require('babel-preset-stage-1'); 

ve

presets: [es2015, react, stage1] 

Ben benzer bir soruya bir cevap here eklediğiniz

presets: ['es2015', 'react', 'stage1'] 

değiştirdi.