我有一个用 Knockout 编写的前端 SPA。由于它的大小,我想将它分成多个文件,使我的文件夹结构看起来像这样:
node_modules
|- knockout
\- requirejs
components
|- MyFutureViewModel.js
\- etc.
index.html
app.js
Index.html 看起来像这样:
<!DOCTYPE html>
<html>
<head>
<title>NCounter</title>
<meta charset="utf-8">
<script type="text/javascript" data-main="app.js" src="./node_modules/requirejs/require.js"></script>
</head>
<body>
<p>The name is <input data-bind="value: name" /></p>
<p>You entered <span data-bind="text: name"></span>.</p>
</body>
</html>
我的 app.js 文件看起来像这样:
requirejs.config({
//Pass the top-level main.js/index.js require
//function to requirejs so that node modules
//are loaded relative to the top-level JS file.
nodeRequire: require
});
require(['knockout'], function(ko) {
var viewModel = function() {
name: ko.observable('name')
};
ko.applyBindings(viewModel);
});
但是requirejs好像没有看到knockout。是否缺少配置或步骤?
最佳答案
你必须修改你的 RequireJS 配置
requirejs.config({
baseUrl: "node_modules/",
路径:{
//假设 knockout 存在于 node_modules/knockout/knockout.js 文件中
//如果没有,你必须指定相对于 `node_modules` 的路径
//没有 .js 扩展名
' knockout ':' knockout/knockout ',
}
});
关于javascript - 如何使用 RequireJS 加载前端 NPM/Yarn 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450550/