这是一个我无法理解如何让它以最佳方式运行的问题,即当对代码库进行更新时,谷歌应用程序脚本文档附加组件和浏览器版本都会更新。 假设我有一个我要发布的谷歌应用脚本项目,可以作为附加组件和浏览器使用。然而,与浏览器版本相比,该项目具有与GAS版本不同的实现。 不幸的是,Browserify不再是一个选项,因为它似乎已经破坏了与GAS中Browserify的向后兼容性。关于如何解决这个问题的任何建议?
答案 0 :(得分:0)
一种方法是向我们提供像Gulp Expose这样的工具。
对于您的浏览器构建,您将向window
公开。对于您的应用脚本构建,您将向this
公开。以下是使用Apps脚本代码构建模块的Gulp任务示例。这来自https://github.com/googlesamples/apps-script-oauth2
var gulp = require('gulp');
var concat = require('gulp-concat');
var expose = require('gulp-expose');
var stripLine = require('gulp-strip-line');
var gulpif = require('gulp-if');
var del = require('del');
var rename = require("gulp-rename");
var jshint = require('gulp-jshint');
var stylish = require('jshint-stylish');
gulp.task('dist', ['clean'], function() {
gulp.src('src/*.gs')
.pipe(gulpif(/OAuth2\.gs$/,
stripLine('var _ =')))
.pipe(concat('OAuth2.gs'))
.pipe(expose('this', 'OAuth2'))
.pipe(gulp.dest('dist'));
gulp.src('node_modules/underscore/underscore.js')
.pipe(rename('Underscore.gs'))
.pipe(gulp.dest('dist'));
});
gulp.task('clean', function() {
del([
'dist/*'
]);
});
gulp.task('lint', function() {
return gulp.src('src/*.gs')
.pipe(jshint())
.pipe(jshint.reporter(stylish));
});