angular - 我的 Angular 应用程序中的 ts 脚本在 node_modules 中找不到模块
问题描述
我有一个 Angular 应用程序。我想在 package.json 中添加一个脚本。
脚本是用 Typescript 编写的,他的路径是 src/scripts/generate-blog-metadata.ts。
const { promisify } = require('util');
const { resolve, join } = require('path');
const {fs} = require('fs');
const readdir = promisify(fs.readdir);
const stat = promisify(fs.stat);
我的 package.json :
"scripts": {
"generate-blog-metadata" : "node src/scripts/generate-blog-metadata.ts"
},
当我运行脚本时:
npm run generate-blog-metadata
我收到一个错误:
/Users/pom/workspace/signalement-app/src/scripts/generate-blog-metadata.ts:6
const readdir = promisify(fs.readdir);
^
TypeError: Cannot read property 'readdir' of undefined
at Object.<anonymous> (/Users/john/workspace/signalement-app/src/scripts/generate-blog-metadata.js:6:30)
我理解的是我运行脚本的方式使他无法找到 node_modules。
可能是 webpack 配置问题,所以这是配置文件:
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: {
server: './server.ts',
},
target: 'node',
resolve: {extensions: ['.ts', '.js']},
externals: [/(node_modules|main\..*\.js)/,],
output: {
libraryTarget: 'commonjs2',
path: path.join(__dirname, 'dist'),
filename: '[name].js'
},
module: {
rules: [
{test: /\.ts$/, loader: 'ts-loader'}
]
},
optimization: {
minimize: false
},
plugins: [
new webpack.ContextReplacementPlugin(
// fixes WARNING Critical dependency: the request of a dependency is an expression
/(.+)?angular(\\|\/)core(.+)?/,
path.join(__dirname, 'src'), // location of your src
{} // a map of your routes
),
new webpack.ContextReplacementPlugin(
// fixes WARNING Critical dependency: the request of a dependency is an expression
/(.+)?express(\\|\/)(.+)?/,
path.join(__dirname, 'src'),
{}
)
]
}
解决方案
我认为您应该将扩展名 generate-blog-metadata.js 更改为 generate-blog-metadata.ts
推荐阅读
- azure - KQL 查询中忽略白名单
- sql - 当列名不固定时,仅从 exec (SQL) 中插入几列
- javascript - 如何在另一个函数中使用 VAR 值?
- python - git跟踪项目中vscode设置工作区python.pythonPath的处理
- html - 带有目标的 Boostrap 响应式列
- java - 在Java中生成一些范围内的许多随机数,但有一些例外
- allennlp - AllenNLP)有没有办法为评估设置配置,特别是为读者?
- upgrade - Ojdbc8 jars 升级到 21.1.0.0 抛出 Nosuchmethod 异常 UCPservletContextListener init
- django - context_object_name 在 CreateView (Django 2.2) 上不起作用
- api - VB.NET order binance 不断收到错误 400