当前位置: 首页 > 知识库问答 >
问题:

如何使用Gulp从以下配置自动构建

谷梁永年
2023-03-14

背景墙

我有一个环回和Angular应用程序,环回使用服务器模型和api,并使用它的sdk我们能够获得客户端服务。

现在我计划使用gulp自动执行以下构建过程。如果在模型中进行了任何更改,则运行sdk命令并重新启动服务器/其次,当对角度文件进行任何更改时,将运行sdk文件并从angular dist文件夹获取文件并重新启动服务器,最好我们可以使用浏览器的实时重新加载。

这是我尝试过的,但似乎从未奏效。我已经为此努力了好几天。

更新

我能够自动化大部分东西,但它失败的地方是

gulp.task('browser-sync', function() {
  browserSync.init(null, {
    proxy: 'http://localhost:3000/home',
    browser: 'google chrome',
    port: 7000,
  });
  gulp.watch(['client/src/app/*.ts'], browserSync.reload);
  let watcher = gulp.watch(['./common/models/**.js', './server/**.js', 'gulpfile.js'], ['sdk', 'server']);
  watcher.on('change', function(event) {
    console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); // this watcher
  });
});

gulp.task('sdk', function() {
  spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q'], {stdio: 'inherit'});
});

此观察者重新启动服务器并运行sdk,但它在sdk中失败

堆栈跟踪。请帮助

via remoting. The Angular code for this scope won't be generated.
[19:29:37] Starting 'sdk'...
[19:29:37] Finished 'sdk' after 11 ms
[19:29:37] Starting 'server'...
[19:29:37] Finished 'server' after 17 ms
events.js:163
      throw er; // Unhandled 'error' event
      ^

Error: spawn ./node_modules/.bin/lb-sdk ENOENT
    at exports._errnoException (util.js:1050:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)

更新

我有多个gulp任务,其中一个是< code>ng build -w,它发生在一个新目录中,因为我更改了< code>process.chdir以更改路径,我还保留了这个sdk的标签,所以我需要再次检查路径。我如何在我的种子中检查或给出绝对路径?如果这是失败的可能原因之一

共有2个答案

孟璞
2023-03-14
匿名用户

    < li >您确定已经运行了< code > NPM install-save-dev @ mean-expert/loopback-SDK-builder ? < li >您确定< code>gulpfile.js与< code>package.json在同一个目录中吗? < li >您确定< code >。/node_modules/。bin/lb-sdk存在吗? < li >您是否尝试过重新安装所有组件?

这个错误的回答只是你的生成函数找不到./node_modules/.bin/lb-sdk。这是因为该文件不存在,或者因为相对于您的gulpfile无法找到它.js

控制台中的 ENOENT 错误表示“错误:无实体”。它来自UNIX,而不是Node本身,基本上只是翻译为“找不到文件”,但适用于各种通用事物,而不仅仅是文件/目录。

检查文件<code>/node_modules/。bin/lb sdk肯定存在。然后检查您的gulpfile是否位于相对于该目录的根目录中。

华宇
2023-03-14

考虑到你的最新情况

可能发生的情况是,一旦您使用<code>进程更改目录。chdir用于一个单独的任务,并且您一直在监视所有任务。路径被设置为上一个路径,而gulp任务无法找到sdk,例如:spawn(“./node_modules/.bin/lb sdk',['server/server.js','./client/src/app/shared/sdk'、'-q',{stdio:'inherit') 在相应路径中。

要解决此问题,可以在sdk任务中添加以下检查:

gulp.task('sdk', function() {
  if (process.cwd() != __dirname) { // this checks for the current path 
    process.chdir(<change path>); // if it dosent match your base path change it here
  }
  spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q'], {stdio: 'inherit'});
});

 类似资料:
  • 我如何告诉Jenkins使用系统安装的Maven? 为什么它要求MAVEN_HOME而不是m2_home?为什么它不显示当前的系统Maven?当构建运行时,它会给出一个BS错误: 解析POM错误:未能解析POM org.apache.maven.project.project.projectBuildingException:在处理POM时遇到一些问题:[FATAL]不可解决的父POM:未能在ht

  • 本文向大家介绍使用gulp构建前端自动化的方法示例,包括了使用gulp构建前端自动化的方法示例的使用技巧和注意事项,需要的朋友参考一下 gulp是一个自动化构建工具,开发者可以用它来自动执行一些常见的任务。这里以我之前做的一个demo为例,简要介绍如何使用gulp实现前端工程自动化。 项目结构 其中src目录下表示的是项目的源代码,可以看到其中有less、js、html等,而dist目录则是保存的

  • 我正在尝试了解如何使用Spring。 我试着效仿这个例子。但是,当我从Eclipse启动Tomcat时,我得到了以下错误: 这是DispatcherServlet的相关代码。xml salvaUtente()是一种方法,我将在其中处理多个插入(现在仍然是exmpty)。

  • 问题内容: 我想利用Maven提供的功能来管理项目中的依赖项。我对Maven的工作方式的简要了解是,它将获取所需的JAR,然后使用这些库来构建项目。 目前,我已经设置了一个简单的POM文件作为测试: 为了管理依赖关系,我通常将项目或JAR添加到构建路径中,然后就可以构建我的项目了。 但是,当使用 M2Eclipse时 ,依赖关系不会自动添加到构建路径中。是否有任何配置可以让Eclipse知道Mav

  • 相关的: null 通过spring配置来配置bean的数量; 通过获取此配置; 从自动配置模块根据所述配置创建并注入@beans; 能够在应用程序中创建bean。 示例:使通过spring配置声明基于咖啡因的的数量成为可能。以下是基于类似问题的公认答案的实现: 首先,引导自动配置模块: