如何使用 sapper 将其他文件导入 server.js?

How can i import additional files into server.js using sapper?

在我的 sapper 应用程序中,我尝试将文件导入 server.js 文件,如下所示:

import sirv from 'sirv';
import polka from 'polka';
import compression from 'compression';
import * as sapper from '@sapper/server';

const { PORT, NODE_ENV } = process.env;
const dev = NODE_ENV === 'development';

const pushController = require('./backend/controllers/push');

polka()
    .use(
        compression({ threshold: 0 }),
        sirv('static', { dev }),
        sapper.middleware()
    )
    .post('/something/route', pushController.subscribe)
    .listen(PORT, err => {
        if (err) console.log('error', err);
    });

但我总是在控制台上收到错误:

Error: Cannot find module './backend/controllers/push

我的根文件夹如下所示:

 - src
   - backend
     - controllers
       - push.js

   - client.js
   - server.js
   - service-worker.js
   - template.html

我正在使用带有默认 rollup 配置的 sapper。因此,该错误可能与汇总有关吗?我该如何解决?

快速测试表明您的结构没问题。请确保您有

# push.js
function pushController() {
  ...
}
...
module.exports = { pushController }

并使用 import 而不是 require

# server.js
import { pushController } from './backend/controllers/push'