1

我正在尝试使用lite-server节点包运行我的应用程序,但它不会从父目录加载脚本。

我希望我index.html/src文件夹中,因为将来可能会生成一个不同的文件到/dist. /node_modules并且systemjs.config.js需要留在根目录中,因为它们不会改变。

文件结构:

文件结构

src/index.html: _

<html>
    <head>
        <base href="/">
        <title>task manager</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="styles.css">
        <!-- 1. Load libraries -->
        <!-- Polyfill(s) for older browsers -->
        <script src="../node_modules/core-js/client/shim.min.js"></script>
        <script src="../node_modules/zone.js/dist/zone.js"></script>
        <script src="../node_modules/reflect-metadata/Reflect.js"></script>
        <script src="../node_modules/systemjs/dist/system.src.js"></script>
        <!-- 2. Configure SystemJS -->
        <script src="../systemjs.config.js"></script>
        <script>
            System.import('app').catch(function(err){ console.error(err); });
        </script>
    </head>
    <!-- 3. Display the application -->
    <body>
        <my-app>Loading...</my-app>
    </body>
</html>

在目录中运行 lite-server /src

在 /src 目录中运行 lite-server 时

节点模块确实存在。如果我将所需的文件移动到子目录本身,/src则服务器运行良好,没有 404。这是我的 lite-server 或 systemjs 设置的问题吗?

4

1 回答 1

0

您需要正确配置lite-server.

在项目根目录中,创建一个名为bs-config.json的文件,其内容如下:

{
  "port": 8000,
  "server": {
    "baseDir": "./src",
    "routes": { "/": "./" }
  }
}

现在您必须在bs-config.json文件lite-server所在的同一目录中运行。

如果您想了解更多关于lite-server配置的信息,请阅读Browsersync 选项文档。

此外,使用此配置,您可以在 index.html 文件中更改脚本的路径:

    <script src="node_modules/core-js/client/shim.min.js"></script>
    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/reflect-metadata/Reflect.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
于 2016-08-03T02:08:01.653 回答