2016-03-26 21 views
0

CommonJs ile tarayıcı kullanarak kullanıyorum.Paket ölü kodunun kaldırılması

Bu yapıda 2 dosyam var.

module.exports = { 
    value: 'bling bling' 
}; 

bu yapıyla dosyayı 1 var.

var file2 = require('./file2.js'); 

console.log('this is the file 2 object value', file2.value); 

Yani benim terminali

$ browserify -g uglifyify ./file1.js | uglifyjs -c > bundle.js 

paket sonucu olacaktır aşağıdaki komutu çalıştırın.

!function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){var file2=require("./file2.js");console.log("this is the file 2 object value",file2.value)},{"./file2.js":2}],2:[function(require,module,exports){module.exports={value:"bling bling"}},{}]},{},[1]); 

aşağıdakileri almak için herhangi bir dönüşümle benim paket dosyası için farklı bir sonuç almak için herhangi bir şans olup olmadığını merak ediyorum.

var file2 = { value: 'bling bling' }; console.log('this is the file 2 object value', file2.value); 

Sadece browserify veya WebPack veya requirejs herhangi ek kodlama olmadan nihai sonuçta kodum, sadece yanlış araç kullanıyorum olabilir istiyorum, ama bu araçların her kullanırken bu her zaman beni bulur.

Bu araçlardan bazıları az çok kodlama üretir, ancak bu ek kodun nasıl kaldırılacağını anlayamadım.

+1

Bunu deneyin: https://github.com/rollup/rollup Browserify veya webpack her zaman bu ekstra kodu üretecektir. –

cevap

2

Varsayılan olarak es6 modüllerini kullanan rollup kullanabilirsiniz. Es6 ithalatı statiktir, bu nedenle paketinizin herhangi bir işlev veya işlevi bulunmayacaktır. Kodunuz sonra olacaktır:
Dosya 1

export default { 
    value: 'bling bling' 
}; 

Dosya 2

Projemde
import file2 from './file2.js'; 

console.log('this is the file 2 object value', file2.value); 

, ben çalıştırmak aşağıdaki komutu kullanmak için toplaması:

./node_modules/rollup/bin/rollup file1.js

İşte more information var es6 modülleri hakkında.

+0

Awesome sadece denedim ve mükemmel çalışıyor, teşekkürler! –