繁体   English   中英

.NET Angular使用RequireJS

[英].NET Angular using RequireJS

我在Visual Studios 2013中创建了一个新的ASP.NET空Web应用程序。我有一个带有以下目录结构的项目:

├───TestProject
│   ├───index.html
│   ├───package.json
│   ├───Web.config
│   ├───app
│   │   ├───app.module.js
│   │   ├───main.js
│   ├───bin
│   ├───node_modules
│   │   ├───google-distance
│   │   │   └───test
│   │   ├───json-stringify-safe
│   │   │   └───test
│   │   ├───qs
│   │   ├───request
│   │   │   └───lib
│   ├───obj
│   │   └───Debug
│   │       └───TempPE
│   ├───Properties
│   └───Scripts
└───packages
    ├───angularjs.1.6.1
    │   └───content
    │       └───Scripts
    │           └───i18n
    │               └───ngLocale
    ├───AngularJS.Core.1.6.1
    │   └───content
    │       └───Scripts
    └───RequireJS.2.3.2
        └───content
            └───Scripts

这是我的packages.json样子:

{
  "name": "google-distance",
  "version": "1.0.1",
  "main": "index",
  "description": "A simple node.js wrapper for Google's Distance Matrix API",
  "author": {
    "name": "Edward Look",
    "email": "edwlook@gmail.com",
    "url": "http://edwardlook.com"
  },
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/edwlook/node-google-distance.git"
  },
  "keywords": [
    "google",
    "maps",
    "distance",
    "matrix",
    "api"
  ],
  "dependencies": {
    "google-distance": "~1.0.1"
  }
}

我运行npm install ,它创建了node_modules文件夹。 main.js文件的顶部,我有:

var distance = require('../node_modules/google-distance/index.js');

但是每次我加载页面时,控制台都会显示:

require.js:168 Uncaught Error: Module name "../node_modules/google-distance/index.js" has not been loaded yet for context: _. Use require([])
http://requirejs.org/docs/errors.html#notloaded
    at makeError (require.js:168)
    at Object.localRequire [as require] (require.js:1433)
    at requirejs (require.js:1794)
    at main.js:2

我究竟做错了什么? 如何使用google-distance模块?

通常,您应按以下要求进行操作;

var distance = require('google-distance');

节点寻找模块的方式如下: 它将通过以下方式对“ node_modules”和“ google-distance”执行分层目录搜索:

  • ./node_modules/google-distance.js
  • ./node_modules/google-distance/index.js
  • ./node_modules/google-distance/package.json

另外,看起来您应该使用require的异步回调版本来加载此库。

require(['google-distance'], function (distance) {
    //package is now loaded.
});

从要求常见问题解答:

模块名称...尚未为上下文加载:...发生在需要require('name')调用但尚未加载'name'模块时发生。 如果错误消息包括Use require([]),则这是应使用异步,回调版本的require来加载代码的顶级require调用(而不是define()调用内的require调用)。

http://requirejs.org/docs/errors.html#notloaded

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM