[英].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”执行分层目录搜索:
另外,看起来您应该使用require的异步回调版本来加载此库。
require(['google-distance'], function (distance) {
//package is now loaded.
});
从要求常见问题解答:
模块名称...尚未为上下文加载:...发生在需要require('name')调用但尚未加载'name'模块时发生。 如果错误消息包括Use require([]),则这是应使用异步,回调版本的require来加载代码的顶级require调用(而不是define()调用内的require调用)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.