javascript - 如何使用 RequireJS 加载前端 NPM/Yarn 包

标签 javascript knockout.js npm requirejs yarnpkg

我有一个用 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/

相关文章:

node.js - npm install 显示一些错误 EACCESS

node.js - 命令 npm install swiper 失败 - 代码 255

javascript - WebGl LINE_STRIP 宽度

javascript - 使用 jquery 加载 json 嵌套对象

knockout.js - 调用默认 knockout 绑定(bind)时自定义 knockout 绑定(bind)失败

javascript - KnockoutJs - 计算数据库评级

php - jQuery调用php脚本onload

javascript - 在 Cordova 应用程序中检测互联网丢失

javascript - knockout - 它是如何工作的?

node.js - NPM 项目的每个 git 分支是否都有不同的 node_modules 依赖项?