Browserify,是否可以将通用模块捆绑到单独的文件中?
Browserify, is it possible to bundle common modules into seperate file?
我在我的网络应用程序中使用 Browserify + Babel + Gulp。当我捆绑脚本时,我只是将所有脚本捆绑到一个文件中。当我检查文件大小时,它有超过 3MB,我认为它太多了。
我不知道 Babel 和 Browserify 如何改变我的源,但如果可能的话,我想分离公共模块(比如通过 NPM 安装),所以让浏览器单独加载文件,如果这是好的方法。
将单个 JS 文件分离成多个小脚本是否是一种好方法?还有一种方法可以使用 Browserify + Babel + Gulp?
这是我使用捆绑脚本时的 gulp 任务:
gulp.task('script', () => {
return browserify({
entries: [`${SRC_PATH}/js/app.js`],
paths: ['./node_modules', './src/js']
})
.transform(babelify, {
presets: ["es2015", "react", "stage-0"],
plugins: [
"transform-runtime",
"transform-decorators-legacy",
"transform-async-to-generator"
]
})
.transform(browserifyCss, { global: true })
.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(`${BUILD_PATH}/js`));
});
我通过创建另一个任务来单独构建通用模块来解决这个问题。
我在我的网络应用程序中使用 Browserify + Babel + Gulp。当我捆绑脚本时,我只是将所有脚本捆绑到一个文件中。当我检查文件大小时,它有超过 3MB,我认为它太多了。
我不知道 Babel 和 Browserify 如何改变我的源,但如果可能的话,我想分离公共模块(比如通过 NPM 安装),所以让浏览器单独加载文件,如果这是好的方法。
将单个 JS 文件分离成多个小脚本是否是一种好方法?还有一种方法可以使用 Browserify + Babel + Gulp?
这是我使用捆绑脚本时的 gulp 任务:
gulp.task('script', () => {
return browserify({
entries: [`${SRC_PATH}/js/app.js`],
paths: ['./node_modules', './src/js']
})
.transform(babelify, {
presets: ["es2015", "react", "stage-0"],
plugins: [
"transform-runtime",
"transform-decorators-legacy",
"transform-async-to-generator"
]
})
.transform(browserifyCss, { global: true })
.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(`${BUILD_PATH}/js`));
});
我通过创建另一个任务来单独构建通用模块来解决这个问题。