addNpmTasks function
void
addNpmTasks()
Enables tasks for building packages for npm.
Implementation
void addNpmTasks() {
if (_addedNpmTasks) return;
_addedNpmTasks = true;
freezeSharedVariables();
jsFlags.freeze();
jsDevFlags.freeze();
jsReleaseFlags.freeze();
jsRequires.freeze();
jsEsmExports.freeze();
jsModuleMainLibrary.freeze();
npmPackageJson.freeze();
npmReadme.freeze();
npmToken.freeze();
npmDistTag.freeze();
var hasNonCliRequires = jsRequires.value.any((require) =>
require.target != JSRequireTarget.cli &&
require.target != JSRequireTarget.all);
if (jsModuleMainLibrary.value == null) {
if (hasNonCliRequires) {
fail("If jsModuleMainLibrary isn't set, all jsRequires must have "
"JSRequireTarget.cli or JSRequireTarget.all.");
} else if (_supportsEsm) {
fail("If jsEsmExports is set, jsModuleMainLibrary must be set as well.");
}
}
addTask(GrinderTask('pkg-js-dev',
taskFunction: () => _js(release: false),
description: 'Compile executable(s) to JS in dev mode.'));
addTask(GrinderTask('pkg-js-release',
taskFunction: () => _js(release: true),
description: 'Compile executable(s) to JS in release mode.'));
addTask(GrinderTask('pkg-npm-dev',
taskFunction: () => _buildPackage(),
description: 'Build a pure-JS dev-mode package.',
depends: ['pkg-js-dev']));
addTask(GrinderTask('pkg-npm-release',
taskFunction: () => _buildPackage(),
description: 'Build a pure-JS release-mode package.',
depends: ['pkg-js-release']));
addTask(GrinderTask('pkg-npm-deploy',
taskFunction: () => _deploy(),
description: 'Deploy the release-mode JS package to npm.',
depends: ['pkg-npm-release']));
}