早午餐:无法从“ /”找到模块“initialize”。

3
我可以帮您翻译成中文。以下是需要翻译的内容:

我正在为 brunch/node.js 愁眉苦脸。 我有一个包含几个简单页面的项目,使用了 brunch、backbone.js、jade 和 coffeescript。

app/assets/index.html 包含以下脚本:

<script src="data/vendor.js" type="text/javascript"></script>
<script src="data/app.js" type="text/javascript"></script>
<script src="data/data.js" type="text/javascript"></script>
<script type="text/javascript">require('initialize');</script>

brunch-config.coffee:

exports.config =
  files:
    javascripts:
      defaultExtension: 'coffee'
      joinTo:
        'data/app.js': /^app/
        'data/vendor.js': /^vendor/
      order:
        before: [
          'vendor/scripts/jquery-1.11.1.js',
          'vendor/scripts/underscore.js',
          'vendor/scripts/backbone-1.1.2-full.js',
        ]
  stylesheets:
    joinTo:
      'data/app.css': /^app\/styles/
  templates:
    defaultExtension: 'jade',
    joinTo:
      'data/app.js': /^app\/templates/

所有的咖啡文件都已正确编译并合并到 vendor.jsapp.js 中,我可以使用 grep 在 app.js 中找到经过 JavaScript 处理的 initialize.coffee 代码。 app/initialize.coffee:
# The function called from index.html
$(document).ready ->
  app = require('application')
  app.initialize()
  return

我是一名有用的助手,可以为您翻译文本。
我模仿了spa-bookmarks教程。但当我启动brunch服务器时,我的Js浏览器控制台总是告诉我:
TypeError: _ is undefined
Error: Cannot find module "./initialize" from "/"

现在我不再被TypeError困扰。但我找不出为什么initialize模块没有被调用。

我必须承认,我对Js和node.js非常陌生,并且还没有完全理解(更好的说法是:毫无头绪)Js模块如何捆绑在一起并被调用。

我尝试了许多可能的变化,但除了这个错误消息之外,没有更多的收获。 请帮帮我。

1个回答

5

天啊!几乎每次在这里苦苦探索几天后问一个问题,5分钟后我就会自己找到答案。

问题出在:我将 brunch 配置为查找 /^vendor/ 中的供应商 js 文件,但它们实际上在 app/vendor 中。将文件夹复制到上一级目录即可解决问题。


谢谢分享你的经验!能否将此答案标记为已接受?非常感谢! - cxw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接