使用require()和导入私有npm模块失败

时间:2016-04-21 13:43:02

标签: node.js npm ecmascript-6 webpack sinopia

我正在尝试导入我在sinopia中托管的私人npm模块。我可以看到我的模块在sinopia文件夹结构中可用。

能够通过“npm install --save”安装模块。我可以看到它从本地注册表中选择它。

但是当我在任何地方使用它时我都会“错误:无法找到模块”

var module = require('some-module'); 
(tried both)
import module from 'some-module';

 ERROR in ./app/index.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../node_modules/test-module in c:\yotest\app
 @ ./app/index.js 39:34-77

P.S:我确实尝试将其安装为全局节点模块,但它又失败了。

编辑:

这是私有模块的package.json,它是github项目的克隆。

    {
  "_args": [
    [
      "react-worker-dom",
      ""
    ]
  ],
  "_from": "react-worker-dom@latest",
  "_id": "react-worker-dom@0.0.3",
  "_inCache": true,
  "_installable": true,
  "_location": "/react-worker-dom",
  "_nodeVersion": "5.7.1",
  "_npmUser": {},
  "_npmVersion": "3.6.0",
  "_phantomChildren": {},
  "_requested": {
    "name": "react-worker-dom",
    "raw": "react-worker-dom",
    "rawSpec": "",
    "scope": null,
    "spec": "latest",
    "type": "tag"
  },
  "_requiredBy": [
    "#USER"
  ],
  "_shasum": "01b520589b7fd9d5533f911108ac6e1f774dab79",
  "_shrinkwrap": null,
  "_spec": "react-worker-dom",
  "_where": "",
  "author": {
    "email": "******************",
    "name": "********************"
  },
  "bugs": {
    "url": "https://github.com/web-perf/react-worker-dom/issues"
  },
  "dependencies": {
    "invariant": "^2.2.0",
    "react": "^0.14.3"
  },
  "description": "ReactJS renderer using Web Workers",
  "devDependencies": {
    "babel-core": "^6.2.1",
    "babel-loader": "^6.2.0",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "babel-preset-stage-0": "^6.1.18",
    "browser-perf": "^1.4.3",
    "react-dom": "^0.14.3",
    "webpack": "^1.12.8",
    "webpack-dev-server": "^1.14.1"
  },
  "directories": {
    "test": "test"
  },
  "dist": {
    "shasum": "01b520589b7fd9d5533f911108ac6e1f774dab79",
    "tarball": "http://localhost:4873/react-worker-dom/-/react-worker-dom-0.0.3.tgz"
  },
  "gitHead": "8c8fb15e793151e0169aac82537f4efe628d9986",
  "homepage": "http://web-perf.github.io/react-worker-dom",
  "license": "BSD-3-Clause",
  "main": "dist/worker.js",
  "name": "react-worker-dom",
  "optionalDependencies": {},
  "publishConfig": {
    "registry": "http://localhost:4873/"
  },
  "readme": "ERROR: No README data found!",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/web-perf/react-worker-dom.git"
  },
  "scripts": {
    "build-demo": "webpack --config test/webpack.config.js",
    "demo": "webpack-dev-server --config test/webpack.config.js",
    "perf": "node test/perf.js"
  },
  "version": "0.0.3"
}

主项目的Webpack配置

module.exports = {
  entry: './app/index.js',
  output: {
    filename: 'public/bundle.js'
  },
  module: {
    loaders: [
      {
        test: /\.jsx?$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel'
      }
    ]
  }
}

主项目的Package.json文件

{
  "name": "yotest",
  "version": "0.0.1",
  "main": "index.js",
  "scripts": {
    "start": "node bin/dev-server"
  },
  "keywords": [
    "webpack",
    "redux",
    "react",
    "react-router",
    "kyper"
  ],
  "license": "MIT",
  "dependencies": {
    "babel-core": "^5.8.22",
    "babel-loader": "^5.3.2",
    "express": "^4.13.3",
    "extract-text-webpack-plugin": "^0.8.2",
    "history": "^1.9.1",
    "kyper-matter": "^0.1.2",
    "lodash": "^3.10.1",
    "proxy-middleware": "^0.13.1",
    "react": "^0.14.0-rc1",
    "react-dom": "^0.14.0-rc1",
    "react-hot-loader": "^1.2.8",
    "react-redux": "^2.1.2",
    "react-router": "^1.0.0-rc1",
    "react-worker-dom": "0.0.3",
    "redux": "^3.0.0",
    "redux-router": "^1.0.0-beta3",
    "redux-thunk": "^1.0.0"
  },
  "devDependencies": {
    "css-loader": "^0.16.0",
    "eslint": "^1.4.1",
    "eslint-config-airbnb": "0.0.8",
    "eslint-plugin-react": "^3.2.3",
    "node-sass": "^3.3.2",
    "redux-devtools": "^2.1.2",
    "sass-loader": "^2.0.1",
    "style-loader": "^0.12.3",
    "webpack": "^1.12.2",
    "webpack-dev-server": "^1.12.0"
  }
}

1 个答案:

答案 0 :(得分:1)

我已经重新配置了我的NPM私有注册表,并且导致了问题导致端口不匹配。