【问题标题】:Grunt-contrib-requirejs with shared libraries ERROR: no such file or directory (Update)带有共享库的 Grunt-contrib-requirejs 错误:没有这样的文件或目录(更新)
【发布时间】:2023-03-15 17:22:01
【问题描述】:

我有一个项目,它由多个具有以下结构的应用程序组成:

project
  |-node_modules
  |-common
     |-public
       |-js
         |-vendor
           |-almond.js
           |-require.js
           |-underscore.js
           |-backbone.js
  |-app1
     |-public
       |-js
         |-requireConfig.js
         |-main.js
         |-views
           |- ...
         |-models
           |- ...
  |-app2
  Gruntfile.js

我想让我的 requirejs grunt 任务将 js src 编译为每个应用程序的一个输出文件。我有这个为 app2 工作,但它不使用共享代码......但是。 我已经为我的 grunt 配置尝试了很多不同的东西,但每次都会遇到不同的错误。

到目前为止,这是我的 gruntfile,用于 requirejs:

requirejs: {
  app1: {
    options: {
      baseUrl: './',
      mainConfigFile: 'app1/public/js/requireConfig.js',
      include: ['app1/public/js/main'],
      out: 'app1/public/release/main.js',
      name: 'common/public/js/vendor/almond',
      optimize: 'none'
    }
  },
  app2: {...}
},

这是我的 requireConfig.js:

require.config({
  paths: {
    jquery: '/common/public/js/vendor/jquery',
    underscore: '/common/public/js/vendor/underscore',
    etc
  }
});

现在当我尝试运行该任务时出现错误:

Error: ENOENT, no such file or directory
'/common/public/js/vendor/backbone.js'
In module tree:
   app1/public/js/main

不知道如何解决这个问题。我尝试在我的 requireConfig 中设置一个 baseUrl,但没有真正的运气。

我发现 r.js 示例构建文件有点令人困惑,我猜我可能以某种方式混淆了 gruntfile 中的配置。

【问题讨论】:

    标签: javascript gruntjs grunt-contrib-requirejs


    【解决方案1】:

    我通过做一些稍微不受欢迎的更改来实现这一点。我已经设置了我的服务器,以便 /common/public 服务器该文件夹,但这会影响我的 requirejs 构建。看来我的 requireConfig 中的路由必须相对于它所在的目录。然后我必须加上前缀:

    '../../../common/public'
    

    我不太喜欢,我也不得不更改 grunt 配置:

    requirejs: {
      app1: {
        options: {
          mainConfigFile: 'app1/public/js/requireConfig.js',
          include: ['main'],
          out: 'app1/public/release/main.js',
          name: '../../../common/public/js/vendor/almond',
          optimize: 'none'
        }
      },
      app2: {...}
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      相关资源
      最近更新 更多