Uncaught ReferenceError:升级generator-angular-fullstack项目时,require的定义不旧

如何解决Uncaught ReferenceError:升级generator-angular-fullstack项目时,require的定义不旧

我有一个旧项目,几年前我开始使用generator-angular-fullstack 3.5.0 我之所以选择使用发电机,是因为它为我带来了很多好处,因此我不必在整个设置中进行深入研究。

但是,当再次开始该项目时,由于软件包太旧,我有很多警告。我已经开始更新package.json。但是现在我的咕unt声不再抱怨了,但是当我进行grun t服务或咕gr声构建时,我的页面显示了我的所有控制器和服务的错误Uncaught ReferenceError:未定义。 / p>

我一直在寻找它,并且我知道我需要例如browserify。但是我不知道如何调整我的gruntfile使其正常工作。

有人可以帮我吗?

我的gruntfile:

// Generated on 2016-03-24 using generator-angular-fullstack 3.5.0
'use strict';

module.exports = function (grunt) {
  var localConfig;
  try {
    localConfig = require('./server/config/local.env');
  } catch(e) {
    localConfig = {};
  }

  // Load grunt tasks automatically,when needed
  require('jit-grunt')(grunt,{
    express: 'grunt-express-server',useminPrepare: 'grunt-usemin',ngtemplates: 'grunt-angular-templates',cdnify: 'grunt-google-cdn',protractor: 'grunt-protractor-runner',buildcontrol: 'grunt-build-control',istanbul_check_coverage: 'grunt-mocha-istanbul',ngconstant: 'grunt-ng-constant'
  });

  // Time how long tasks take. Can help when optimizing build times
  require('time-grunt')(grunt);

  // Define the configuration for all the tasks
  grunt.initConfig({

    // Project settings
    pkg: grunt.file.readJSON('package.json'),yeoman: {
      // configurable paths
      client: require('./bower.json').appPath || 'client',server: 'server',dist: 'dist'
    },express: {
      options: {
        port: process.env.PORT || 9000
      },dev: {
        options: {
          script: '<%= yeoman.server %>',debug: true
        }
      },prod: {
        options: {
          script: '<%= yeoman.dist %>/<%= yeoman.server %>'
        }
      }
    },open: {
      server: {
        url: 'http://localhost:<%= express.options.port %>'
      }
    },watch: {
      babel: {
        files: ['<%= yeoman.client %>/{app,components}/**/!(*.spec|*.mock).js'],tasks: ['newer:babel:client']
      },ngconstant: {
        files: ['<%= yeoman.server %>/config/environment/shared.js'],tasks: ['ngconstant']
      },injectJS: {
        files: [
          '<%= yeoman.client %>/{app,components}/**/!(*.spec|*.mock).js','!<%= yeoman.client %>/app/app.js'
        ],tasks: ['injector:scripts']
      },injectCss: {
        files: ['<%= yeoman.client %>/{app,components}/**/*.css'],tasks: ['injector:css']
      },mochaTest: {
        files: ['<%= yeoman.server %>/**/*.{spec,integration}.js'],tasks: ['env:test','mochaTest']
      },jsTest: {
        files: ['<%= yeoman.client %>/{app,components}/**/*.{spec,mock}.js'],tasks: ['newer:jshint:all','wiredep:test','karma']
      },gruntfile: {
        files: ['Gruntfile.js']
      },livereload: {
        files: [
          '{.tmp,<%= yeoman.client %>}/{app,components}/**/*.{css,html}','{.tmp,'<%= yeoman.client %>/assets/images/{,*//*}*.{png,jpg,jpeg,gif,webp,svg}'
        ],options: {
          livereload: true
        }
      },express: {
        files: ['<%= yeoman.server %>/**/*.{js,json}'],tasks: ['express:dev','wait'],options: {
          livereload: true,spawn: false //Without this option specified express won't be reloaded
        }
      },bower: {
        files: ['bower.json'],tasks: ['wiredep']
      },},// Make sure code styles are up to par and there are no obvious mistakes
    jshint: {
      options: {
        jshintrc: '<%= yeoman.client %>/.jshintrc',reporter: require('jshint-stylish')
      },server: {
        options: {
          jshintrc: '<%= yeoman.server %>/.jshintrc'
        },src: ['<%= yeoman.server %>/**/!(*.spec|*.integration).js']
      },serverTest: {
        options: {
          jshintrc: '<%= yeoman.server %>/.jshintrc-spec'
        },src: ['<%= yeoman.server %>/**/*.{spec,integration}.js']
      },all: ['<%= yeoman.client %>/{app,components}/**/!(*.spec|*.mock|app.constant).js'],test: {
        src: ['<%= yeoman.client %>/{app,mock}.js']
      }
    },jscs: {
      options: {
        config: ".jscsrc"
      },main: {
        files: {
          src: [
            '<%= yeoman.client %>/app/**/*.js','<%= yeoman.server %>/**/*.js'
          ]
        }
      }
    },// Empties folders to start fresh
    clean: {
      dist: {
        files: [{
          dot: true,src: [
            '.tmp','<%= yeoman.dist %>/!(.git*|.openshift|Procfile)**'
          ]
        }]
      },server: '.tmp'
    },// Add vendor prefixed styles
    postcss: {
      options: {
        map: true,processors: [
          require('autoprefixer')({browsers: ['last 2 version']})
        ]
      },dist: {
        files: [{
          expand: true,cwd: '.tmp/',src: '{,*/}*.css',dest: '.tmp/'
        }]
      }
    },// Debugging with node inspector
    'node-inspector': {
      custom: {
        options: {
          'web-host': 'localhost'
        }
      }
    },// Use nodemon to run server in debug mode with an initial breakpoint
    nodemon: {
      debug: {
        script: '<%= yeoman.server %>',options: {
          nodeArgs: ['--debug-brk'],env: {
            PORT: process.env.PORT || 9000
          },callback: function (nodemon) {
            nodemon.on('log',function (event) {
              console.log(event.colour);
            });

            // opens browser on initial server start
            nodemon.on('config:update',function () {
              setTimeout(function () {
                require('open')('http://localhost:8080/debug?port=5858');
              },500);
            });
          }
        }
      }
    },// Automatically inject Bower components into the app and karma.conf.js
    wiredep: {
      options: {
        exclude: [
          /bootstrap.js/,'/json3/','/es5-shim/'
        ]
      },client: {
        src: '<%= yeoman.client %>/index.html',ignorePath: '<%= yeoman.client %>/',test: {
        src: './karma.conf.js',devDependencies: true
      }
    },// Renames files for browser caching purposes
    filerev: {
      dist: {
        src: [
          '<%= yeoman.dist %>/<%= yeoman.client %>/!(bower_components){,*/}*.{js,css}','<%= yeoman.dist %>/<%= yeoman.client %>/assets/images/{,*/}*.{png,svg}'
        ]
      }
    },// Reads HTML for usemin blocks to enable smart builds that automatically
    // concat,minify and revision files. Creates configurations in memory so
    // additional tasks can operate on them
    useminPrepare: {
      html: ['<%= yeoman.client %>/index.html'],options: {
        dest: '<%= yeoman.dist %>/<%= yeoman.client %>'
      }
    },// Performs rewrites based on rev and the useminPrepare configuration
    usemin: {
      html: ['<%= yeoman.dist %>/<%= yeoman.client %>/{,!(bower_components)/**/}*.html'],css: ['<%= yeoman.dist %>/<%= yeoman.client %>/!(bower_components){,*/}*.css'],js: ['<%= yeoman.dist %>/<%= yeoman.client %>/!(bower_components){,*/}*.js'],options: {
        assetsDirs: [
          '<%= yeoman.dist %>/<%= yeoman.client %>','<%= yeoman.dist %>/<%= yeoman.client %>/assets/images'
        ],// This is so we update image references in our ng-templates
        patterns: {
          css: [
            [/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm,'Update the CSS to reference our revved images']
          ],js: [
            [/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm,'Update the JS to reference our revved images']
          ]
        }
      }
    },// The following *-min tasks produce minified files in the dist folder
    imagemin: {
      dist: {
        files: [{
          expand: true,cwd: '<%= yeoman.client %>/assets/images',svg}',dest: '<%= yeoman.dist %>/<%= yeoman.client %>/assets/images'
        }]
      }
    },// Allow the use of non-minsafe AngularJS files. Automatically makes it
    // minsafe compatible so Uglify does not destroy the ng references
    ngAnnotate: {
      dist: {
        files: [{
          expand: true,cwd: '.tmp/concat',src: '**/*.js',dest: '.tmp/concat'
        }]
      }
    },// Dynamically generate angular constant `appConfig` from
    // `server/config/environment/shared.js`
    ngconstant: {
      options: {
        name: 'matkotApp.constants',dest: '<%= yeoman.client %>/app/app.constant.js',deps: [],wrap: true,configPath: '<%= yeoman.server %>/config/environment/shared'
      },app: {
        constants: function() {
          return {
            appConfig: require('./' + grunt.config.get('ngconstant.options.configPath'))
          };
        }
      }
    },// Package all the html partials into a single javascript payload
    ngtemplates: {
      options: {
        // This should be the name of your apps angular module
        module: 'matkotApp',htmlmin: {
          collapseBooleanAttributes: true,collapseWhitespace: true,removeAttributeQuotes: true,removeEmptyAttributes: true,removeRedundantAttributes: true,removeScriptTypeAttributes: true,removeStyleLinkTypeAttributes: true
        },usemin: 'app/app.js'
      },main: {
        cwd: '<%= yeoman.client %>',src: ['{app,components}/**/*.html'],dest: '.tmp/templates.js'
      },tmp: {
        cwd: '.tmp',dest: '.tmp/tmp-templates.js'
      }
    },// Replace Google CDN references
    cdnify: {
      dist: {
        html: ['<%= yeoman.dist %>/<%= yeoman.client %>/*.html']
      }
    },// Copies remaining files to places other tasks can use
    copy: {
      dist: {
        files: [{
          expand: true,dot: true,cwd: '<%= yeoman.client %>',dest: '<%= yeoman.dist %>/<%= yeoman.client %>',src: [
            '*.{ico,png,txt}','.htaccess','bower_components/**/*','assets/images/{,*/}*.{webp}','assets/fonts/**/*','index.html'
          ]
        },{
          expand: true,cwd: '.tmp/images',dest: '<%= yeoman.dist %>/<%= yeoman.client %>/assets/images',src: ['generated/*']
        },dest: '<%= yeoman.dist %>',src: [
            'package.json','<%= yeoman.server %>/**/*','!<%= yeoman.server %>/config/local.env.sample.js'
          ]
        }]
      },styles: {
        expand: true,dest: '.tmp/',components}/**/*.css']
      }
    },buildcontrol: {
      options: {
        dir: '<%= yeoman.dist %>',commit: true,push: true,connectCommits: false,message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%'
      },heroku: {
        options: {
          remote: 'heroku',branch: 'master'
        }
      },openshift: {
        options: {
          remote: 'openshift',branch: 'master'
        }
      }
    },// Run some tasks in parallel to speed up the build process
    concurrent: {
      pre: [
        'ngconstant'
      ],server: [
        'newer:babel:client',],test: [
        'newer:babel:client',debug: {
        tasks: [
          'nodemon','node-inspector'
        ],options: {
          logConcurrentOutput: true
        }
      },dist: [
        'newer:babel:client','imagemin'
      ]
    },// Test settings
    karma: {
      unit: {
        configFile: 'karma.conf.js',singleRun: true
      }
    },mochaTest: {
      options: {
        reporter: 'spec',require: 'mocha.conf.js',timeout: 5000 // set default mocha spec timeout
      },unit: {
        src: ['<%= yeoman.server %>/**/*.spec.js']
      },integration: {
        src: ['<%= yeoman.server %>/**/*.integration.js']
      }
    },mocha_istanbul: {
      unit: {
        options: {
          excludes: ['**/*.{spec,mock,reporter: 'spec',require: ['mocha.conf.js'],mask: '**/*.spec.js',coverageFolder: 'coverage/server/unit'
        },src: '<%= yeoman.server %>'
      },integration: {
        options: {
          excludes: ['**/*.{spec,mask: '**/*.integration.js',coverageFolder: 'coverage/server/integration'
        },src: '<%= yeoman.server %>'
      }
    },istanbul_check_coverage: {
      default: {
        options: {
          coverageFolder: 'coverage/**',check: {
            lines: 80,statements: 80,branches: 80,functions: 80
          }
        }
      }
    },protractor: {
      options: {
        configFile: 'protractor.conf.js'
      },chrome: {
        options: {
          args: {
            browser: 'chrome'
          }
        }
      }
    },env: {
      test: {
        NODE_ENV: 'test'
      },prod: {
        NODE_ENV: 'production'
      },all: localConfig
    },// Compiles ES6 to JavaScript using Babel
    babel: {
      options: {
        sourceMap: true
      },client: {
        files: [{
          expand: true,components}/**/!(*.spec).js'],dest: '.tmp'
        }]
      },server: {
        options: {
          plugins: [
            "@babel/plugin-transform-runtime","@babel/plugin-proposal-class-properties"
          ]
        },files: [{
          expand: true,cwd: '<%= yeoman.server %>',src: [
            '**/*.js','!config/local.env.sample.js'
          ],dest: '<%= yeoman.dist %>/<%= yeoman.server %>'
        }]
      }
    },injector: {
      options: {},// Inject application script files into index.html (doesn't include bower)
      scripts: {
        options: {
          transform: function(filePath) {
            var yoClient = grunt.config.get('yeoman.client');
            filePath = filePath.replace('/' + yoClient + '/','');
            filePath = filePath.replace('/.tmp/','');
            return '<script src="' + filePath + '"></script>';
          },sort: function(a,b) {
            var module = /\.module\.(js|ts)$/;
            var aMod = module.test(a);
            var bMod = module.test(b);
            // inject *.module.js first
            return (aMod === bMod) ? 0 : (aMod ? -1 : 1);
          },starttag: '<!-- injector:js -->',endtag: '<!-- endinjector -->'
        },files: {
          '<%= yeoman.client %>/index.html': [
               [
                 '<%= yeoman.client %>/{app,'!{.tmp,<%= yeoman.client %>}/app/app.{js,ts}'
               ]
            ]
        }
      },// Inject component css into index.html
      css: {
        options: {
          transform: function(filePath) {
            var yoClient = grunt.config.get('yeoman.client');
            filePath = filePath.replace('/' + yoClient + '/','');
            return '<link rel="stylesheet" href="' + filePath + '">';
          },starttag: '<!-- injector:css -->',files: {
          '<%= yeoman.client %>/index.html': [
            '<%= yeoman.client %>/{app,components}/**/*.css'
          ]
        }
      }
    },});

  // Used for delaying livereload until after server has restarted
  grunt.registerTask('wait',function () {
    grunt.log.ok('Waiting for server reload...');

    var done = this.async();

    setTimeout(function () {
      grunt.log.writeln('Done waiting!');
      done();
    },1500);
  });

  grunt.registerTask('express-keepalive','Keep grunt running',function() {
    this.async();
  });

  grunt.registerTask('serve',function (target) {
    if (target === 'dist') {
      return grunt.task.run(['build','env:all','env:prod','express:prod','wait','open','express-keepalive']);
    }

    if (target === 'debug') {
      return grunt.task.run([
        'clean:server','concurrent:pre','concurrent:server','injector','wiredep:client','postcss','concurrent:debug'
      ]);
    }

    grunt.task.run([
      'clean:server','express:dev','watch'
    ]);
  });

  grunt.registerTask('server',function () {
    grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
    grunt.task.run(['serve']);
  });

  grunt.registerTask('test',function(target,option) {
    if (target === 'server') {
      return grunt.task.run([
        'env:all','env:test','mochaTest:unit','mochaTest:integration'
      ]);
    }

    else if (target === 'client') {
      return grunt.task.run([
        'clean:server','concurrent:test','karma'
      ]);
    }

    else if (target === 'e2e') {

      if (option === 'prod') {
        return grunt.task.run([
          'build','protractor'
        ]);
      }

      else {
        return grunt.task.run([
          'clean:server','protractor'
        ]);
      }
    }

    else if (target === 'coverage') {

      if (option === 'unit') {
        return grunt.task.run([
          'env:all','mocha_istanbul:unit'
        ]);
      }

      else if (option === 'integration') {
        return grunt.task.run([
          'env:all','mocha_istanbul:integration'
        ]);
      }

      else if (option === 'check') {
        return grunt.task.run([
          'istanbul_check_coverage'
        ]);
      }

      else {
        return grunt.task.run([
          'env:all','mocha_istanbul','istanbul_check_coverage'
        ]);
      }

    }

    else grunt.task.run([
      'test:server','test:client'
    ]);
  });

  grunt.registerTask('build',[
    'clean:dist','concurrent:dist','useminPrepare','ngtemplates','concat','ngAnnotate','copy:dist','babel:server','cdnify','cssmin','uglify','filerev','usemin'
  ]);

  grunt.registerTask('default',[
    'newer:jshint','test','build'
  ]);
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-