找不到Npm模块

时间:2017-03-22 16:33:01

标签: javascript angularjs node.js

我正在运行使用Grunt构建并使用Bower和NPM的Angular应用程序。

我尝试在本地安装我的npm模块。这些文件位于node_modules文件夹的主app目录中。

模块文档要求我使用<script type="text/javascript" src="node_modules/moment/moment.js"></script>加载模块,但我得到404。

我错过了什么吗?我是否必须告诉Grunt我想要这些NPM模块?

4 个答案:

答案 0 :(得分:1)

基本上,npm是所有javaScript框架的包管理器,例如Nodejs,angularjs等.npm应该全局安装在机器上。你可以从https://nodejs.org/en/安装它。

接下来,您需要检查项目中的 package.json 文件。

如果项目文件夹中存在 package.json 已存在,那么从命令行开始,您需要转到项目文件夹并输入 npm start 即可。

如果 package.json文件不存在,则在命令行中输入 npm init ,然后会出现 package.json 在项目文件夹中创建的文件。然后编辑package.json。并将节点包添加到 package.json 中,与此

类似
{
  "name": "shoppingkart",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www" //If you have any scripts.
  },
  "dependencies": {
    "mongoose": "^4.9.0",  // here you should have all your node_modules listed
    "passport": "^0.3.2",
    "stripe": "^4.15.1"
  }

}

如果您无法将依赖项添加到json文件,还有另一种方法可以执行此操作。  只需在命令行中转到项目目录并键入

即可
npm install --save grunt // And you need to do for all the node_modules, by replacing the **grunt**.

自动将依赖项添加到package.json文件中。

答案 1 :(得分:0)

您能否提供有关您的应用内容的更多信息?如果node为您的应用程序提供服务,则需要将链接的目录设置为public。假设您正在使用express,这在app.js文件中看起来像这样:

app.use('/node_modules', express.static(__dirname + '/node_modules/moment/moment.js'));

编辑: 或者,如果您只是想让它工作,请尝试从CDN加载moment.js,如下所示:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
CDN上的{p> Link

答案 2 :(得分:0)

如果您在本地安装了npm软件包,则应在项目的根目录中找到node_modules文件夹。

如果您全局安装了所有软件包,则可能无法在项目中看到npm_modules文件夹。

要查看全局模块的位置,您可以运行

npm list -g

答案 3 :(得分:0)

我遇到了同样的问题,只是全局安装该软件包并保存到最后。

赞:

npm install -g <package> --save

即使以上操作均无效,请在末尾使用-f / --force强制安装。