2016-03-26 8 views
0

Ich benutze browserify mit CommonJs.Entfernen von Bündel-Code

Ich habe Datei 2 mit dieser Struktur.

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

Ich habe die Datei 1 mit dieser Struktur.

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

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

So betreibe ich den folgenden Befehl in meinem Terminal

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

Das Bündel Ergebnis sein würde.

!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]); 

ich mich gefragt, ob es eine Chance ist ein anderes Ergebnis für meine Bundle-Datei mit jeder Transformation zu erhalten, um die folgenden zu bekommen.

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

Ich will nur meinen Code in das Endergebnis ohne zusätzliche Codierung von browserify oder webpack oder requirejs, kann ich nur das Werkzeug falsch verwende, aber dies geschieht immer zu mir, wenn jedes dieser Tools.

Einige dieser Tools produzieren mehr oder weniger Codierung, aber ich konnte nicht herausfinden, wie dieser zusätzliche Code entfernt wird.

+1

Versuchen Sie diese: https://github.com/rollup/rollup Browserify oder Webpack wird immer diesen zusätzlichen Code generieren. –

Antwort

2

Sie können rollup verwenden, die es6 Module standardmäßig verwendet. Es6-Importe sind statisch, daher enthält Ihr Bundle keine require-Funktionen oder irgendetwas darin. Ihr Code wäre dann:
Datei 1

export default { 
    value: 'bling bling' 
}; 

Datei 2

import file2 from './file2.js'; 

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

In meinem Projekt habe ich den folgenden Befehl verwenden Rollup:

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

Hier more information über es6 Module.

+0

Awesome gerade versucht und es funktioniert perfekt, danke! –