【发布时间】:2016-10-25 18:48:22
【问题描述】:
我正在寻找一种使用 browserify 进行缩小的好方法。
我正在开发一个反应应用程序,试图使构建设置尽可能简单。
我正在使用browserify、babelify 和watchify。
我不想使用像 grunt 或 gulp 这样的任务运行器,而只是使用 npm 以使设置尽可能简单。
我想对 browserify(生产构建)和 watchify(在开发过程中)使用相同的参数。开发期间编译的 js 应该与生产构建中的完全相同(即我希望在开发期间也进行缩小。我希望使用 browserify 进行最强大的缩小。我知道还有其他模块加载器,如 rollup 或 systemjs 可以实现更小的输出,但这不是我感兴趣的。
我当前的watch 命令如下所示:
watchify src/main.js -t babelify -t envify -o build/bundle.js -v
相应的构建命令如下所示:
browserify src/main.js -t babelify -t envify -o build/bundle.js -v
请注意,所有参数看起来都一样。这就是我想成为的样子,以便将来保持命令同步。
现在我的问题是如何添加丑化/缩小。
我尝试像这样添加 uglifyify:-g [ uglifyify --no-sourcemap ] 但输出中仍然有很多换行符,所以我猜它没有完全缩小。
我还尝试删除 -o 参数并通过 uglifyjs as described here 管道输出。这会产生较小的输出,但不适用于 watchify 命令。
【问题讨论】:
-
您知道捆绑包本身不会被缩小吗?只有进入其中的模块才会出现,因此您会看到像
},{}],2:[function(require,module,exports){这样的代码周围的换行符,它包装了每个缩小的模块。 -
@cartant 我根本不知道这是预期的行为。我虽然做错了什么。现在这解释了很多。
标签: javascript browserify uglifyjs