【问题标题】:Error: Cannot find module 'jade~'错误:找不到模块'jade~'
【发布时间】:2013-03-08 08:22:43
【问题描述】:

我是节点 js 的新手。我使用 Compound Js 创建了一个 crud 操作。

该应用程序运行良好,直到我尝试提醒一个值,之后我收到错误

500 Error: Cannot find module 'jade~'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)

如何解决这个问题

我的索引

#tabs
  ul
    li
      a(href='#tabs-1') New Leave
    li
      a(href='#tabs-2') Index of Leave
  #tabs-1
    .page-header
      h1 New employee

    - var form = formFor(employee, {action: pathTo.employees(), method: 'POST', id: "employee_form", class: 'form-horizontal'})

    != form.begin()
    != errorMessagesFor(employee) 
    .control-group
      != form.label("code", false, {class: "control-label"})
      .controls
        != form.input("code")
    .control-group
     != form.label("description", false, {class: "control-label"})
      .controls
        != form.input("description")
    .control-group
      != form.label("applicable", false, {class: "control-label"})
      .controls
        != form.input("applicable")
    .control-group
      != form.label("cForward", false, {class: "control-label"})
      .controls
        != form.checkbox("cForward")
    .control-group
      != form.label("limit", false, {class: "control-label"})
      .controls
        != form.checkbox("limit")
    .control-group
      != form.label("lop", false, {class: "control-label"})
      .controls
        != form.checkbox("lop")
    .control-group
      != form.label("od", false, {class: "control-label"})
      .controls
        != form.checkbox("od")
    .control-group
      != form.label("co", false, {class: "control-label"})
      .controls
        != form.checkbox("co")
    .control-group
      != form.label("lrevision", false, {class: "control-label"})
      .controls
        != form.checkbox("lrevision")
    .control-group
      != form.label("active", false, {class: "control-label"})
      .controls
        != form.checkbox("active")
    .form-actions
      != form.submit('<i class="icon-ok icon-white"></i>  Create employee', {class: 'btn btn-primary'})
      span= ' or '
      != linkTo('Cancel', pathTo.employees(), {class: 'btn'})
    != form.end()
  #tabs-2
    .page-header
      h1 Index of employees


    .row
      .span12
         p
            != linkTo('<i class="icon-plus icon-white"></i> New employee', path_to.new_employee(), {class: 'btn btn-primary'})

    - if (employees.length) {
    .row
      .span12
         table.table.table-striped
           thead
             tr
               th ID
               th.span3 Actions
           tbody
             - employees.forEach(function (employee) {
             tr
               td
                 != linkTo('employee #' + employee.id, path_to.employee(employee))
               td
                 != linkTo('<i class="icon-edit"></i> Edit', pathTo.edit_employee(employee), {class: 'btn btn-mini'}) + ' '
                 != linkTo('<i class="icon-remove icon-white"></i> Delete', pathTo.employee(employee), {class: 'btn btn-mini btn-danger', method: 'delete', remote: true, jsonp: '(function (u) {location.href = u;})'})
             - });
    - } else{
    .row
      .span12
         p.alert.alert-block.alert-info
            strong No employees were found.
    - } 

布局文件

!!! 5
html
  head
    title= title
    != stylesheetLinkTag('http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/base/jquery-ui.css', 'bootstrap', 'application', 'bootstrap-responsive')
    != javascriptIncludeTag('https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.js', 'rails', 'application')
    script
      $(document).ready(function() {
        $("#tabs").tabs();
      });
    != csrfMetaTag()
  body
    .navbar
        .navbar-inner
            .container
               a.brand(href='#') Project name

    .container
      - var flash = request.flash('info').pop(); if (flash) {
        .alert.alert-info= flash
      - }

      - flash = request.flash('error').pop(); if (flash) {
        .alert.alert-error= flash
      - }

      != body

      hr
      footer
        p © Company 2012
  != contentFor('javascripts')

【问题讨论】:

    标签: javascript node.js pug railway.js compoundjs


    【解决方案1】:

    我在 nodeschool expressworks 教程中遇到了同样的问题。我通过在 package.json 中包含依赖项来解决它:

    npm install --save express jade
    

    【讨论】:

    • 这对我有帮助。阅读后,我意识到我以某种方式从项目的 package.json 中删除了翡翠模块,这就是它找不到的原因。添加回来,更新了 npm,一切正常。
    • 它也帮助了我:)
    • 谢谢你。当时正在使用 Team Treehouse 来学习 Node.js,他们有一个完整的部分是关于 Jade(现在更名为 Pug),并经历了一堆迭代,试​​图让它发挥作用。经验教训。
    • 令我和其他许多人感到惊讶的是,这实际上对我有用,而不是默认解决方案。
    【解决方案2】:

    我也有同样的问题,但是“找不到模块'jade'”,而不是'jade~';我很确定我已经做了“npm install jam”。经过一段时间的研究,我发现我的问题是因为我在全局安装 express 而在本地安装jade,参考了这个帮助https://www.openshift.com/forums/express/nodejs-and-jade-error-cannot-find-module-jade 我解决了我的问题.. 我把它贴在这里,以为它可能会帮助其他面临同样问题的人作为我的问题:)

    【讨论】:

      【解决方案3】:

      对我来说,这是一个不同的问题。 我在本地和全球都安装了jade和express,希望他们能以某种方式找到对方,但仍然在抱怨jade。

      我的错误如下所示:

      Express server listening on port 3000
      Error: Cannot find module 'jade'
          at Function.Module._resolveFilename (module.js:338:15)
          at Function.Module._load (module.js:280:25)
          at Module.require (module.js:364:17)
          at require (module.js:380:17)
          at new View (/Users/ajeetganga/node_modules/express/lib/view.js:43:49)
          at Function.app.render (/Users/ajeetganga/node_modules/express/lib/application.js:488:12)
          at ServerResponse.res.render (/Users/ajeetganga/node_modules/express/lib/response.js:798:7)
          at exports.index (/Users/ajeetganga/Documents/WORKSPACE/TinyUrl/MyTinyUrl2/routes/index.js:7:7)
          at callbacks (/Users/ajeetganga/node_modules/express/lib/router/index.js:164:37)
          at param (/Users/ajeetganga/node_modules/express/lib/router/index.js:138:11)
      

      如果你观察到这条线:

      at new View (/Users/ajeetganga/node_modules/express/lib/view.js:43:49)
      

      您会看到它不是全局或本地 npm 安装的默认位置.. 因此,作为一种解决方法,我在以下文件夹中安装了翡翠

      cd /Users/ajeetganga/node_modules/
      npm install jade
      

      我认为即使我会从文件夹 /Users/ajeetganga/ 安装翡翠但从未尝试过,它也会起作用。 :)

      【讨论】:

      • 在手动创建 express 项目并在 eclipse 上运行时,我遇到了相同的错误堆栈跟踪。我按照您在项目根目录中的建议安装了翡翠,它起作用了。
      【解决方案4】:

      The issue was with Fedora-16 我正在研究。编辑时创建的临时文件,即'index.jade~'没有被清除,因此问题来了。

      在 Fedora-16 中可以通过 删除临时文件 'index.jade~' 或通过将节点模块 'jade' 重命名为 'jade~' 来解决这个问题强>

      【讨论】:

        【解决方案5】:

        嗯,你几乎肯定有 require('jade~') 一个简单的错字,你想要的只是 require('jade')。检查您的快递app.engine('jade') 线路是否是另一个可能的嫌疑人。

        【讨论】:

        • 您可能已将文件命名为server.jsapp.js。有限的可用证据强烈指出了一个非常简单的基本错字。在你的文件中搜索jade~ 并修复它,然后继续你的生活。在添加警报之前,您认为它工作正常,但您肯定被误导了。 node.js 中没有警报,浏览器中发生的事情不会导致 node 无法找到玉模块。
        • 没有玉啊~
        • Lysons:app里没有玉~。我搜索了整个文件
        • 更新问题。发布您的.js 文件。您的 .jade 文件无关紧要。
        • @Lysons 你能指定哪个文件吗?
        【解决方案6】:

        我在用 Emacs 编辑了一个玉文件后遇到了同样的问题。解决方法很简单:找到jade~文件并删除。

        【讨论】:

          【解决方案7】:

          我遇到了同样的问题(我的 typescript + webpack 项目中的 jade-loader)。我通过将jade-loader安装为对等依赖项来解决它。

          【讨论】:

            猜你喜欢
            • 2018-12-30
            • 1970-01-01
            • 2016-12-20
            • 1970-01-01
            • 1970-01-01
            • 2021-01-20
            • 1970-01-01
            • 2023-04-03
            • 2017-01-21
            相关资源
            最近更新 更多