我正在使用browserify与CommonJs。
我有这种结构的文件2.
module.exports = {
value: 'bling bling'
};
我有这种结构的文件1.
var file2 = require('./file2.js');
console.log('this is the file 2 object value', file2.value);
所以我在终端
中运行以下命令$ browserify -g uglifyify ./file1.js | uglifyjs -c > bundle.js
捆绑结果将是。
!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]);
我想知道是否有机会通过任何转换为我的捆绑文件获得不同的结果以获得以下内容。
var file2 = { value: 'bling bling' }; console.log('this is the file 2 object value', file2.value);
我只是希望我的代码在最终结果中没有任何额外的browserify或webpack或requirejs编码,可能我只是错误地使用该工具,但在使用这些工具时,这总是发生在我身上。
这些工具中的一些产生或多或少的编码,但我无法弄清楚如何删除这些额外的代码。
答案 0 :(得分:2)
您可以使用rollup,默认情况下使用es6模块。 Es6导入是静态的,因此您的bundle将没有require函数或其中的任何内容。您的代码将是:
档案1
export default {
value: 'bling bling'
};
文件2
import file2 from './file2.js';
console.log('this is the file 2 object value', file2.value);
在我的项目中,我运行以下命令来使用汇总:
./node_modules/rollup/bin/rollup file1.js
这里有关于es6模块的more information。