node.js-无法导入已安装的软件包

时间:2020-09-02 13:13:58

标签: javascript node.js import

我正在尝试将moments导入我的main.js文件夹中,并且遇到了麻烦。 我安装了npm install moment --save。我已经尝试过require('moment')import moment from 'moment'语法。当我尝试使用require时,出现了一些我不完全记得的错误,但是它们很常见。我曾搜索过YouTube和SO,但没有一个解决方案能解决它。这是我的package.json

{
  "name": "project",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "type": "module",
  "dependencies": {
    "live-server": "^1.2.1",
    "lodash": "^4.17.20",
    "moment": "^2.27.0",
    "node-sass": "^4.14.1",
    "requirejs": "^2.3.6"
  },
  "devDependencies": {
    "sass": "^1.26.10",
  },
  "scripts": {
    "compile:sass": "node-sass sass/main.scss style.css -w",
    "devserver": "live-server",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

index.html文件中,我有type="module"允许导入ES6。我在做什么错了?

对不起!忘记了我遇到的错误(当前) TypeError: Error resolving module specifier: moment

当尝试使用require时: ReferenceError: require is not defined

1 个答案:

答案 0 :(得分:0)

在深入研究之后,让我们总结一下:

在您的情况下,您只想在moment.js文件中使用脚本标记在main.js文件中引用的index.html中使用node.js。这与npm无关,除了可以使用npm install moment 下载弯矩相关性。为了实现您想要的目的,我建议您执行以下操作:

使用npm安装力矩依赖

moment.js

node_modules/moment/lib文件从import moment from './moment.js'; 文件夹(不是src!)复制到项目中的文件夹(例如脚本)。您可以手动执行此操作,也可以使用脚本/任务运行器执行此操作。

在main.js文件中,您使用引用该文件

<script type="module" src="./main.js"></script>

,在index.html文件中,您使用引用了main.js文件

webpack

正如我们所讨论的。这是一些体力劳动,但对于进行一些快速试用,有时就足够了。如果您要开始真正构建一个完整的应用程序,我强烈建议您添加一个 public function index(Request $request) { @$result= DB::select("SELECT * FROM table WHERE user_id =?", [$user_id]); $result_arr = json_decode(json_encode($result), true); $label_array = array(); foreach($result_arr as $d) { $label_array[]=$d['label_element']; } $data_array = array(); foreach($result_arr as $d) { $data_array[]=$d['data_element']; } return view('home', ['labels'=>$label_array, 'data'=>$data_array]); } 这样的模块捆绑器,以使所有这些工作都可以从您手中掌握。