2015-04-16 19 views
12

Şu anda web paketi ile ace-builds (bower'dan yüklenmiş) gerektirmeye çalışıyorum. Büyük bir lib olduğundan, tüm klasörü noParse seçeneğine ekliyorum. Terminalde -d seçeneği ile webpack çalışıyorum.Webpack ve noParse seçeneği ile 'ace-builds/ace' gerektiriyor

Sorun şu ki: kodum bunu gerektirdiğinde, boş bir nesnedir. Ayrıca, tarayıcı tarafından yüklenmez. İşte ne yapıyorum bazı bilgiler şunlardır:

Dosyam:

// custom_editor.js 
// ace-builds are aliased by ace keyword 
var Ace = require('ace/ace'); // This is an empty Object when I'm debugging with breakpoints 

Object {}

Yapılandırma dosyası: Bu, Chrome Ağ panelinden yüklü değildi

// webpack.config.js 
var webpack = require('webpack'); 
var path = require('path'); 

module.exports = { 
    entry: { 
    form: path.join(__dirname, 'static/main_files/form.js'), 
    vendor: [ 
     'jquery', 
     'react', 
     'underscore', 
     'query-string', 
     'react-dnd', 
     'react-select-box' 
    ] 
    }, 
    output: { 
    path: path.join(__dirname, 'static/bundle'), 
    filename: '[name].bundle.js' 
    }, 
    module: { 
    loaders: [{ 
     test: /\.jsx$/, 
     loader: 'jsx-loader?insertPragma=React.DOM' 
    }], 
    noParse: [ 
     /ace-builds.*/ 
    ] 
    }, 
    resolve: { 
    extensions: ['', '.js', '.jsx'], 
    root: [ 
     __dirname, 
     path.join(__dirname, 'static'), 
     path.join(__dirname, 'node_modules') 
    ], 
    alias: { 
     jQueryMask: 'node_modules/jquery-mask-plugin/dist/jquery.mask', 
     twbsDropdown: 'node_modules/bootstrap-sass/assets/javascripts/bootstrap/dropdown', 
     'twbs-datetimepicker': 'node_modules/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker', 
     ace: 'bower_components/ace-builds/src', 
     'select-box': 'node_modules/react-select-box/lib/select-box', 
     queryString: 'node_modules/query-string/query-string', 
     moment: 'node_modules/moment/moment' 
    } 
    }, 
    plugins: [ 
    new webpack.ResolverPlugin(
     new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin("bower.json", ["main"]) 
    ), 
    new webpack.ProvidePlugin({ 
     $: 'jquery', 
     jQuery: 'jquery' 
    }) 
    ] 
}; 

Network

Bu, Chrome Kaynaklar panelde gösteriyor

(hayır ace.map dosya ya yüklendi çünkü Neden bilmiyorum)

Sources

Gerçekten burada yanlış yapıyorum ne fikir gelmiyordu. Klonlayabileceğim ve test edebileceğim iyi bir örnek var mı? (Başka bir lib da olabilir).

+1

Birlikte bir çözüm yaptık ama ben örneğin, as yolu ile birlikte - en uygun çözüm değil, en azından çalışır. – gabrielhpugliese

+0

Aynı sorunu yaşıyor. Çözüm bu muydu? –

+0

Evet. O zamandan beri kodlara dokunmadım. Birisi brace kullanmayı söyledi, ama denemedim. – gabrielhpugliese

cevap

20

brace'u kullanın. Ayrıca web editörü ile çalışan ace editörünün tarayıcı sürümüyle uyumlu bir versiyonudur. Sürüm 0.5.1, ace 1.1.9 kullanıyor. {: { 'Ace/ace': dış varlıklara 'ace}}

https://github.com/thlorenz/brace

+0

Bana bir sürü baş ağrısını kurtardın, teşekkürler! – hochas

+0

Bununla ilgili bir boyut sorunum var. Dev modda yapıya 15MB ve üretim modunda 3MB ekler. Emin olarak harici olarak daha iyi kullanabileceğimize eminim – toutpt