Ошибка при запуске веб-пакета с динамическим импортом - PullRequest
0 голосов
/ 26 января 2019

Я не получаю сообщение об ошибке при обновлении системы модулей в tsconfig до commonjs, но тогда файл ничего не загружает (например, я не получаю журналы консоли).Когда я удаляю импорт из файла .ts, он просто отлично работает.Я что-то пропустил?Я тоже пробовал с babel, но получаю тот же результат.(Использование узла 10.15.0)

ОБНОВЛЕНИЕ: Ошибка была вызвана каким-то другим пакетом в package.json, я удалил все пакеты, кроме минимальной.Несмотря на то, что ошибка устранена, я все еще не получаю журналы консоли, когда загруженные файлы js загружаются на веб-сайт.

Ошибка:

Module parse failed: Unexpected token (42:45)
You may need an appropriate loader to handle this file type.
|         return __generator(this, function (_a) {
|             switch (_a.label) {
>                 case 0: return [4 /*yield*/, import('conditioner-core/conditioner-core.esm')];
|                 case 1:
|                     conditioner = _a.sent();

Конфигурация Webpack:

const path = require("path");
const webpack = require('webpack');
const websiteRootPath = "C:\\inetpub\\wwwroot\\testsite";

module.exports = {
  entry: {
    "project-1":
      "./src/Project1/scripts/index.ts",
    "project-2":
      "./src/Project2/scripts/index.ts"
  },
  output: {
    filename: "[name].bundle.js",
    path: path.resolve(websiteRootPath, "assets\\webpack"),
    publicPath: "/assets/webpack/"
  },
  devtool: "source-map",
  module: {
    rules: [
      { 
        test: /\.tsx?$/, 
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'ts-loader',
        }
    },

      // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
      { enforce: "pre", test: /\.js$/, loader: "source-map-loader" }
    ]
  },
  resolve: {
    extensions: [".js", ".ts"]
  },
  plugins: [
    new webpack.ProvidePlugin({
      $: "jquery",
      jQuery: "jquery"
    })
  ]
};

tsconfig.json

{
    "compilerOptions": {
        "sourceMap": true,
        "module": "esnext",
        "experimentalDecorators": true,
        "moduleResolution": "node",
        "target": "es5",
        "strict": false,
        "lib": ["es2015.promise", "dom", "es5"],
    },
    "include": [
        "./src/**/*"
    ],
    "exclude": [
        "**/obj/**/PackageTmp/**/*"
    ]
}

devDependencies в packages.json:

"devDependencies": {
  "@types/jquery": "^3.3.29",
  "@types/kendo-ui": "^2018.3.0",
  "@types/node": "^10.12.18",
  "@types/webpack-env": "^1.13.6",
  "acorn": "^6.0.0",
  "ajv": "^6.7.0",
  "conditioner-core": "^2.3.1",
  "source-map-loader": "^0.2.4",
  "ts-loader": "^5.3.3",
  "typescript": "^3.1.6",
  "webpack": "^4.29.0",
  "webpack-cli": "^3.2.1",
  "webpack-merge": "^4.2.1"
}

index.ts:

console.log("before main");
async function main() {
    console.log("inside main");
    const conditioner = await import('conditioner-core/conditioner-core.esm');

    // lets go!
    conditioner.hydrate(document.documentElement);
}
main();
console.log("after main");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...