我正在使用webpack bundle 基于Express.js框架的node.js Web服务器。

Webpack构建工作正常,但最后它给了我两个红色消息:

[1]外部“表达” 42个字节{0} [不可缓存]

[2]外部“路径” 42个字节{0} [不可缓存]

这是什么意思,我应该解决它吗?如果是,那么如何解决?

我的webpack配置在这里:

var server = {
  devtool: 'source-map',
  entry: './src/server.ts',
  target: 'node',

  // Config for our build files
  output: {
    path: root('dist/server'),
    filename: '[name].bundle.js',
    sourceMapFilename: '[name].map',
    chunkFilename: '[id].chunk.js'
  },

  externals: nodeModules,

  module: {
    preLoaders: [
      // { test: /\.ts$/, loader: 'tslint-loader', exclude: [ root('node_modules') ] },
      // TODO(gdi2290): `exclude: [ root('node_modules/rxjs') ]` fixed with rxjs 5 beta.2 release
      { test: /\.js$/, loader: "source-map-loader", exclude: [ root('node_modules/rxjs') ] }
    ],
    loaders: [
      // Support for .ts files.
      { test: /\.ts$/, loader: 'ts-loader', exclude: [ /\.(spec|e2e|async)\.ts$/ ] }
    ]
  },

  plugins: [
    new webpack.optimize.OccurenceOrderPlugin(true),
    // replace
    new webpack.DefinePlugin({
      'process.env': {
        'ENV': JSON.stringify(metadata.ENV),
        'NODE_ENV': JSON.stringify(metadata.ENV)
      }
    })
  ],

};

我的server.ts模块:
console.log('Starting web server...');

import * as path from 'path';
import * as express from 'express';

let app = express();
let root = path.join(path.resolve(__dirname, '..'));

var port = process.env.PORT || 8080;        // set our port
var router = express.Router();

router.get('/', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });
});

app.use('/api', router);

app.listen(port);
console.log('Server started on port ' + port);

最佳答案

这是因为外部定义。参见the relevant test case

关于node.js - Webpack外部不可缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35170397/

10-16 21:00