Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点js从模块化代码结构缩小并连接到单个文件_Javascript_Node.js_Webpack_Minify - Fatal编程技术网

Javascript 节点js从模块化代码结构缩小并连接到单个文件

Javascript 节点js从模块化代码结构缩小并连接到单个文件,javascript,node.js,webpack,minify,Javascript,Node.js,Webpack,Minify,我有一个基于NodeJS的模块化应用程序。 应用程序的结构如下所示 var webpack = require('webpack'); var path = require('path'); var fs = require('fs'); var nodeModules = {}; fs.readdirSync(path.resolve(__dirname, 'node_modules')) .filter(x => ['.bin'].indexOf(x) === -1) .forEac

我有一个基于NodeJS的模块化应用程序。 应用程序的结构如下所示

var webpack = require('webpack');
var path = require('path');
var fs = require('fs');

var nodeModules = {};
fs.readdirSync(path.resolve(__dirname, 'node_modules'))
.filter(x => ['.bin'].indexOf(x) === -1)
.forEach(mod => { nodeModules[mod] = `commonjs ${mod}`; });

module.exports = {
  name: 'server',
  target: 'node',
  entry: './server.js',
  output: {
    path: path.join(__dirname, 'build'),
    filename: 'bundle.js'
  },
  externals: nodeModules,
  module: {
    loader: [
      {
        test: /\.json$/, loader: 'json-loader'
      }
    ]
  }
}
  • server.js
  • 控制器
    • controller1.js
    • controller2.js
    • dao1.js
    • dao2.js
  • 节点单元
现在我想缩小整个项目并将其连接到一个文件中。我面临的挑战是每个控制器和dao文件都在使用“要求”(相对路径)来包含节点模块
有什么简单的方法可以做到这一点吗

编辑

已试用网页包模块
我的webpack.config.js看起来像

var webpack = require('webpack');
var path = require('path');
var fs = require('fs');

var nodeModules = {};
fs.readdirSync(path.resolve(__dirname, 'node_modules'))
.filter(x => ['.bin'].indexOf(x) === -1)
.forEach(mod => { nodeModules[mod] = `commonjs ${mod}`; });

module.exports = {
  name: 'server',
  target: 'node',
  entry: './server.js',
  output: {
    path: path.join(__dirname, 'build'),
    filename: 'bundle.js'
  },
  externals: nodeModules,
  module: {
    loader: [
      {
        test: /\.json$/, loader: 'json-loader'
      }
    ]
  }
}
它给出了以下错误:

./~/npm/~/npm注册表客户端/test/unpublish-scoped.js中出错 未找到模块:错误:无法解析“文件”或“目录”。/fixtures/@npm/np D:\OTTAFW\node\u modules\npm\node\u modules\npm regi中的m-registry-client/cache.json stry客户端\测试


你看过网页了吗?

您可以使用任务运行程序来缝合和缩小。看看是否要直接缝合和缩小文件。为了管理依赖关系,您必须定义依赖关系树并编写逻辑,以便在最终生成中不添加多个依赖关系

server.js
controllers
|-- controller1.js
          require('lodash')
|-- controller2.js
          require('./controller1')
dao
|-- dao1.js
          require('lodash')
          require('../controllers/controller2')
|-- dao2.js
          require('../controllers/controller1')
node_modules
假设,如果是这种情况,您必须小心文件只附加一次


相反,你可以使用

minify node应用程序的要点是什么?我想分享这个应用程序,并想让代码稍微安全一点