仅复制具有gulp-npm-dist的依赖模块后未找到节点模块

时间:2019-04-03 13:32:28

标签: javascript npm gulp

我正在尝试找到仅打包项目所需的node_modules依赖项的最佳方法。所以我找到了gulp-npm-dist并有一个gulpfile.js

var gulp = require('gulp');
var npmDist = require('gulp-npm-dist');
 
gulp.task('CopyNodeDependencies', function() {
  gulp.src(npmDist(), {base:'./node_modules'})
    .pipe(gulp.dest('./node_dependencies'));
});

这仅放置了我package.json中需要的模块:

{
  "version": "1.0.0",
  "name": "common",
  "private": true,
  "devDependencies": {
    "gulp": "^3.9.1",
    "gulp-less": "^3.1.0",
    "gulp-npm-dist": "^0.1.2",
    "gulp-rename": "^1.2.2",
    "pump": "^1.0.1"
  },
  "dependencies": {
    "chart.js": "^2.7.3",
    "chartjs-node-canvas": "^2.0.1",
    "moment": "^2.24.0"
  }
}

但是当我运行具有var moment = require('moment');的节点文件时;顶部说找不到模块时刻。我已将node_dependencies重命名为node_modules,但仍会引发此错误。我也尝试过../node_dependencies/moment之类的相对路径,但这仍然行不通。

如果有帮助,以下是node_dependencies的文件夹结构:enter image description here

1 个答案:

答案 0 :(得分:0)

您必须保留原来的node_modules目录,才能使用require()。 gulp-npm-dist仅复制缩小的文件,而没有package.json,yarn.lock等。