_compile_1597930428371.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // v1.1.0
  2. //是否使用IDE自带的node环境和插件,设置false后,则使用自己环境(使用命令行方式执行)
  3. let useIDENode = process.argv[0].indexOf("LayaAir") > -1 ? true : false;
  4. //获取Node插件和工作路径
  5. let ideModuleDir = useIDENode ? process.argv[1].replace("gulp\\bin\\gulp.js", "").replace("gulp/bin/gulp.js", "") : "";
  6. let workSpaceDir = useIDENode ? process.argv[2].replace("--gulpfile=", "").replace("\\.laya\\compile.js", "").replace("/.laya/compile.js", "") : "./../";
  7. const gulp = require(ideModuleDir + "gulp");
  8. const rollup = require(ideModuleDir + "rollup");
  9. const typescript = require(ideModuleDir + 'rollup-plugin-typescript2');//typescript2 plugin
  10. const glsl = require(ideModuleDir + 'rollup-plugin-glsl');
  11. // 如果是发布时调用编译功能,增加prevTasks
  12. let prevTasks = "";
  13. if (global.publish) {
  14. prevTasks = ["loadConfig"];
  15. }
  16. //使用browserify,转换ts到js,并输出到bin/js目录
  17. gulp.task("compile", prevTasks, function () {
  18. // 发布时调用编译功能,判断是否点击了编译选项
  19. if (global.publish && !global.config.compile) {
  20. return;
  21. } else if (global.publish && global.config.compile) {
  22. // 发布时调用编译,workSpaceDir使用publish.js里的变量
  23. workSpaceDir = global.workSpaceDir;
  24. }
  25. return rollup.rollup({
  26. input: workSpaceDir + '/src/Main.ts',
  27. treeshake: true,//建议忽略
  28. plugins: [
  29. typescript({
  30. check: false, //Set to false to avoid doing any diagnostic checks on the code
  31. tsconfigOverride:{compilerOptions:{removeComments: true}}
  32. }),
  33. glsl({
  34. // By default, everything gets included
  35. include: /.*(.glsl|.vs|.fs)$/,
  36. sourceMap: true,
  37. compress:false
  38. }),
  39. /*terser({
  40. output: {
  41. },
  42. numWorkers:1,//Amount of workers to spawn. Defaults to the number of CPUs minus 1
  43. sourcemap: false
  44. })*/
  45. ]
  46. }).then(bundle => {
  47. return bundle.write({
  48. file: workSpaceDir + '/bin/js/bundle.js',
  49. format: 'iife',
  50. name: 'laya',
  51. sourcemap: true
  52. });
  53. });
  54. });