gulp - 复制node_modules时如何省略devDependencies?

标签 gulp

我只想复制对应用程序很重要的模块 - 位于 dependencies 中的模块在 package.json .我想省略 devDependencies 下的那些.
package.json

{            
    "dependencies": {
        "express": "^4.13.4",
        "log4js": "^0.6.33"            
    },
    "devDependencies": {
        "gulp": "^3.9.1",
        "gulp-rename": "^1.2.2",
        "gulp-typescript": "^2.12.1",
        "typings": "^0.7.9",
        "yargs": "^4.3.2"
    }
}
gulpfile.js
gulp.task('copy_packages', function() {
      gulp
         .src('node_modules/**/*.*')
         .pipe(gulp.dest('../release/node_modules'));
});

有没有什么模块或者聪明的方法来区分哪些模块属于dependencies组和devDependencies ?

最佳答案

有同样的问题......感觉很奇怪这在创建 gulp 时没有考虑。
我的工作是使用 child_process 运行 npm install 并指定一个目录来放置 node_modules 目录,其中仅包含应用程序所需的包。

例如: gulp.task('createDeployNodeModulesFolder', function(cb) { spawn('"npm"', ['install', '--prefix', './dist/', 'package1', 'package2'], {stdio: 'inherit', shell: true}, function (err, stdout, stderr) { console.log(stdout); console.log(stderr); }) .on('close', cb); });
在您的情况下,您只需要生产依赖项,因此您可以使用:
npm install --prefix/deployDir/--only=prod

会有一些警告提示没有 package.json..etc.,但这些只是警告。如果你真的想摆脱它们,我想你可以在运行 npm install 之前添加一个任务来复制或创建一个 package.json 到部署目录中。

关于gulp - 复制node_modules时如何省略devDependencies?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36222967/

相关文章:

javascript - gulp 任务在没有全局对象的情况下共享一个公共(public)设置

node.js - Gulp 在第一个 XHR 请求时崩溃并出现 HPE_INVALID_CONSTANT 错误

javascript - 如何使用对象列表作为 gulp 源流

javascript - gulp 构建时的 BrowserslistError(name)

testing - TFS/VSTS 中的 CasperJS 测试结果

javascript - 是否可以在运行依赖项之前在 gulp 任务中分配一个变量?

css - Gulp 生成空的 css 文件(编译 sass 到 css)

node.js - 将环境变量从 gulp 注入(inject)到 webpack

javascript - gulp-image 最小压缩误差

javascript - 如何让 Gulp 停止监视文件