1

只要我将所有内容都保存在我的根文件夹中,利用 tsc/npm 脚本和 lite-server 进行 JIT 编译就可以完美地工作

IE

project_folder
bs-config.js
index.html //with ref to
src/
  main.ts
  //main.js
  //main.js.map
  app/
    app.module.ts
    //etc..
    components/
      foo/
      foo.component.ts       

bs-config 用于处理此问题:

var proxy = require('http-proxy-middleware');

var myProxy= proxy('/path', {
  target: 'http://xxxx/path',
  changeOrigin: true
});

module.exports = {
  port: 3000,
  files: ["./src/**/*.{html,htm,css,js}"],
  open: false,
  logLevel: "info",
  server: {
    index: "index.html"
    middleware: {
      1: myProxy
    }
  }
};

作为同事的新要求,这应该改为更“吞咽方式”的开发方式,使用经典的 dist 文件夹,编译.js文件应该放在哪里

尝试仅使用我刚刚添加"outDir": "./dist"到 tsconfig的标准 npm 脚本来实现这一点

大问题是,一旦我更改了 bs-config 的 baseDir,我就无法再访问 node_modules,因为 lite-server 显然无法在其 baseDir 之外提供服务?

具体来说,我无法从 index.html 中获取我的最小节点库,例如

<script src="node_modules/core-js/client/library.min.js"></script>
<!-- ../node_modules cant get resolved -->

此处提供的修复对我不起作用: lite-server 不会从 Angular 2 应用程序中的父目录加载脚本

4

1 回答 1

0

设置 server.baseDir 路由时,还需要配置 server.routes 选项,以便能够从 baseDir 的父文件夹访问路径。像这样:

{
    "server": { 
        "baseDir": "./src",
        "routes": { "/node_modules": "node_modules" }
    }
}

然后在 ./src 中的文件中,将 node_modules/foo 路径更改为 ../node_modules/foo。

于 2020-11-25T04:15:36.033 回答