我正在尝试找到仅打包项目所需的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之类的相对路径,但这仍然行不通。
答案 0 :(得分:0)
您必须保留原来的node_modules
目录,才能使用require()
。
gulp-npm-dist仅复制缩小的文件,而没有package.json,yarn.lock等。